题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
简单正则表达式匹配思路,容易理解。
#include <iostream> #include <string> #include <vector> #include <set> #include<regex> using namespace std; int main(){ string s; getline(cin,s); int x=0,y=0; int j=0; for(int i=0;i<s.size();++i) { if(s[i]==';') { string t=s.substr(j,i-j); regex pattern("^([ASWD]{1})(\\d{1,2})$"); smatch result; bool flag=regex_match(t,result,pattern); if(flag) { if(result[1]=='A') x-=stoi(result[2]); else if(result[1]=='D') x+=stoi(result[2]); else if(result[1]=='S') y-=stoi(result[2]); else if(result[1]=='W') y+=stoi(result[2]); } while(i<s.size()&&s[i+1]==';') ++i; j=i+1; } } cout<<x<<','<<y<<endl; }