题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string str;
getline(cin,str);
stringstream ss(str);
vector<string> v;
string temp;
while(getline(ss,temp,';')){
v.push_back(temp);
}
int x=0,y=0;
for(int i=0;i<v.size();i++){
if(v[i].size()<=1||v[i].size()>3)
continue;
if(v[i][0]!='W'&&v[i][0]!='A'&&v[i][0]!='S'&&v[i][0]!='D')
continue;
int dist = 0;
for(int j=1;j<v[i].size();j++){
if(v[i][j]>='0'&&v[i][j]<='9'){
dist = dist*10+v[i][j]-'0';
}else{
dist=0;
break;
}
}
if(dist==0)
continue;
switch(v[i][0]){
case 'W':
y+=dist;
break;
case 'A':
x-=dist;
break;
case 'S':
y-=dist;
break;
case 'D':
x+=dist;
break;
default:
continue;
}
}
cout<<x<<','<<y<<endl;
return 0;
}
查看9道真题和解析