#include <iostream> using namespace std; int main() { string s; cin>>s; int len = s.length(); int x = 0,y = 0; bool flag = true; for(int i = 0;i<len;i++){ if((s[i]=='A'||s[i]=='D'||s[i]=='W'||s[i]=='S')){ if(i!=0&&s[i-1]==';'||i==0){ int res = 0; int idx = i,ok = 1;; i++; while (s[i]!=';') { if(s[i]<'0'||s[i]>'9'||(s[i]>='A'&&s[i]<='Z')){ ok = 0; i++; break; } res = res*10+(s[i]-'0'); i++; } if(!ok){ while(s[i]!=';'){ i++; } continue; } if(res>99||res<1){ continue; } if(s[idx]=='A'){ x-=res; } if(s[idx]=='D'){ x+=res; } if(s[idx]=='W'){ y+=res; } if(s[idx]=='S'){ y-=res; } // cout<<res<<' '<<idx<<"**\n"; } } } cout<<x<<","<<y; } // 64 位输出请用 printf("%lld")
以分号为间隔符,我重点处理了';',如果在开头则正常处理就行,但在句中每段开始前必为';'