题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <stdio.h>
#include <string.h>
int x;
int y;
void isvaild(char *s,int start,int end)
{
int len=end-start;
if(len!=3)
{
if(len!=2) return ;
}
if(s[start]=='A')
{
int sum=0;
for(int i=start+1;i<end;i++)
{
if(s[i]-'0'<0||s[i]-'0'>9) return ;
sum=sum*10+s[i]-'0';
}
x=x-sum;
}
if(s[start]=='S')
{
int sum=0;
for(int i=start+1;i<end;i++)
{
if(s[i]-'0'<0||s[i]-'0'>9) return ;
sum=sum*10+s[i]-'0';
}
y=y-sum;
}
if(s[start]=='D')
{
int sum=0;
for(int i=start+1;i<end;i++)
{
if(s[i]-'0'<0||s[i]-'0'>9) return ;
sum=sum*10+s[i]-'0';
}
x=x+sum;
}
if(s[start]=='W')
{
int sum=0;
for(int i=start+1;i<end;i++)
{
if(s[i]-'0'<0||s[i]-'0'>9) return ;
sum=sum*10+s[i]-'0';
}
y=y+sum;
}
}
int main() {
char str[10000];
x=0;
y=0;
gets(str);
int len=strlen(str);
int pre=0;
for(int i=0;i<len;i++)
{
if(str[i]==';')
{
isvaild( str, pre, i);
pre=i+1;
}
}
printf("%d,%d",x,y);
return 0;
}
查看4道真题和解析
