题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <iostream>
#include<vector>
using namespace std;
int main() {
string s;
cin>>s;
//vector<string> vec;
int x=0;
int y=0;
int end=0;
for(int i=0;i<s.size();i++)
{
end=i;
while(s[end]!=';'&&end<s.size())
{
end++;
}
string str=s.substr(i,end-i);
if(str.size()<=3&&str.size()>=2)
{
//vec.push_back(str);
if(str[0]=='A')
{
str.erase(0,1);
if(str.size()==1&&str[0]>='0'&&str[0]<='9')
{
x=x-(str[0]-'0');
}
if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
{
x=x-((str[0]-'0')*10+(str[1]-'0'));
}
}
else if(str[0]=='D')
{
str.erase(0,1);
if(str.size()==1&&str[0]>='0'&&str[0]<='9')
{
x=x+(str[0]-'0');
}
if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
{
x=x+((str[0]-'0')*10+(str[1]-'0'));
}
}
else if(str[0]=='W')
{
str.erase(0,1);
if(str.size()==1&&str[0]>='0'&&str[0]<='9')
{
y=y+(str[0]-'0');
}
if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
{
y=y+((str[0]-'0')*10+(str[1]-'0'));
}
}
else if(str[0]=='S')
{
str.erase(0,1);
if(str.size()==1&&str[0]>='0'&&str[0]<='9')
{
y=y-(str[0]-'0');
}
if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
{
y=y-((str[0]-'0')*10+(str[1]-'0'));
}
}
}
i=end;
}
cout<<x<<","<<y;
}
// 64 位输出请用 printf("%lld")