求助!90分了,第八个不对!
查看原帖
求助!90分了,第八个不对!
536745
WaTleZero_pt楼主2021/7/17 19:07
#include<bits/stdc++.h>
using namespace std;
string c;
int cishu;
long long yidong;
int main()
{
	stack<int> s;
	stack<int> fanfu;
	getline(cin,c);
	for(int i=0;i<c.size();i++)
	{
		if(c[i]=='F')
		{
			i+=3;
			int rightmove=0;
			while(c[i]>='0'&&c[i]<='9')
			{
				rightmove=rightmove*10+(c[i]-48);
				i++;
			}
			yidong=yidong+rightmove;
		}
		if(c[i]=='B')
		{
			i+=3;
			int leftmove=0;
			while(c[i]>='0'&&c[i]<='9')
			{
				leftmove=leftmove*10+(c[i]-48);
				i++;
			}
			yidong=yidong-leftmove;
		}
		if(c[i]=='R')
		{
			i+=7;
			cishu=0;
			while(c[i]>='0'&&c[i]<='9')
			{
				cishu=cishu*10+(c[i]-48);
				i++;
			}
			fanfu.push(cishu);
		}
		if(c[i]=='[')
		{
			s.push(i);
		}
		if(c[i]==']')
		{
			if(fanfu.top()>1)
			{
				i=s.top();
				int v=fanfu.top();
				fanfu.pop();
				v--;
				fanfu.push(v);
			}
			else
			{
				s.pop();
				fanfu.pop();
			}
		}
	}
	cout<<abs(yidong);
	return 0;
}
2021/7/17 19:07
加载中...