华为机试坐标点
坐标移动
http://www.nowcoder.com/questionTerminal/119bcca3befb405fbe58abe9c532eb29
include
include
using namespace std;
struct p{
int x;
int y;
}point;
bool is_true(string sub )
{
if(sub[0]=='A'||sub[0]=='S'||sub[0]=='W'||sub[0]=='D') { for(int i=1;i<sub.length();i++) { if(sub[i]>='0'&&sub[i]<='9') continue; else return false; } return true; } else{ return false; }
}
p in_point(string sub)
{
int shuzi=0; for(int i=1;i<sub.length();i++) { shuzi=shuzi*10+sub[i]-'0'; } p a; if(sub[0]=='A') { a.x=-1*shuzi; a.y=0; }else if(sub[0]=='S') { a.x=0; a.y=-1*shuzi; }else if(sub[0]=='W') { a.x=0; a.y=shuzi; }else if(sub[0]=='D') { a.x=shuzi; a.y=0; } return a;
}
int main(){
string str;
while(getline(cin, str)){
p out_a;
out_a.x=0;
out_a.y=0;
string sub="";
for(int i=0;i<str.length();i++)
{
if(str[i]!=';')
{
sub+=str[i];
}
else{
if(is_true(sub))
{
p a=in_point(sub);
out_a.x+=a.x;
out_a.y+=a.y;
}
sub="";
}
}
cout<<out_a.x<<","<<out_a.y<<endl; } return 0;
}