题解 | #坐标移动#
坐标移动
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")