题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <stdio.h>
#include <string.h>
int f(char*a,int l){
if(l<=3&&l>1){
if(a[0]=='A'||a[0]=='D'||a[0]=='W'||a[0]=='S'){
if(l==2){
if(a[1]>='0'&&a[1]<='9'){
return 1;
}
}
else{
if(a[1]>='0'&&a[1]<='9'&&a[2]>='0'&&a[2]<='9'){
return 1;
}
}
}
}
return 0;
}
int main() {
int x=0,y=0,t;
int i,j,num=0,len;
char str[10005],g[10005][105];
scanf("%s",str);
j=0;
for(i=0;str[i]!='\0';i++){
if(str[i]!=';'){
g[num+1][j++]=str[i];
}
else{
num++;
j=0;
}
}
for(i=1;i<=num;i++){
len=strlen(g[i]);
if(f(g[i],len)){
if(len==2){
t=g[i][1]-'0';
}
else{
t=(g[i][1]-'0')*10+(g[i][2]-'0');
}
if(g[i][0]=='A'){
x=x-t;
}
else if(g[i][0]=='D'){
x=x+t;
}
else if(g[i][0]=='W'){
y=y+t;
}
else{
y=y-t;
}
}
}
printf("%d,%d",x,y);
return 0;
}