题解 | #坐标移动#
坐标移动
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")
记录一下
查看8道真题和解析