题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <iostream> #include <vector> using namespace std; void getValid(string s,vector<int> &v){ if(s.size()<2||s.size()>3) return ; int num = 0; for(int i = 1;i<s.size();i++){ if(s[i]<='9'&&s[i>='0']){ num = num*10+s[i]-'0'; }else return; } switch (s[0]) { case 'W': v[0]+=num;break; case 'A': v[1]-=num;break; case 'S': v[0]-=num;break; case 'D': v[1]+=num;break; default: return; } return; } int main() { int a=0,b=0; string s; vector<int> vec(2,0); string tmp=""; getline(cin,s); for(auto i:s){ if(i==';'){ getValid(tmp,vec); tmp = ""; } else tmp+=i; } cout<<vec[1]<<','<<vec[0]; } // 64 位输出请用 printf("%lld")
记录一下