题解 | #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

#include <cmath>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
bool checkToken(const string& token){
    if(token[0]=='A'||token[0]=='W'||token[0]=='S'||token[0]=='D'){
        for(int i=1;i<token.size();++i){
        if(token[i] >='0' && token[i]<='9'){

        }else{
            return false;
        }
    }

    }else{
        return false;
    }
    
    return true;
}
int main() {
    int x=0;
    int y=0;
    string s;
    getline(cin, s);
    
    istringstream stream(s);
    vector<string> vec;
    string token;
    while(getline(stream, token,';')){
        if(token!=""  && checkToken(token)){
            vec.emplace_back(token);
        }
    }

    for(int i=0;i<vec.size();++i){
        int num = 0;
        if(vec[i][0]=='A'){
            for(int j=1;j<vec[i].size();++j){
                num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0');
            }
            
            x-=num;
        }
        if(vec[i][0]=='D'){
            for(int j=1;j<vec[i].size();++j){
                num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0');
            }
           
            x+=num;
        }

        if(vec[i][0]=='W'){
            for(int j=1;j<vec[i].size();++j){
                num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0');
            }
            
            y+=num;
        }

        if(vec[i][0]=='S'){
            for(int j=1;j<vec[i].size();++j){
                num += pow(10, vec[i].size()-j-1)*(vec[i][j]-'0');
            }
            
            y-=num;
        }


    }

    cout<<x<<","<<y;


}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务