题解 | #坐标移动#

坐标移动

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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务