题解 | #坐标移动#

坐标移动

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

#include <iostream>
#include <vector>
using namespace std;

 void getValid(string s,vector<int> &v){
    if(s.size()<2||s.size()>3) return ;
    int num = 0;
    for(int i = 1;i<s.size();i++){
        if(s[i]<='9'&&s[i>='0']){
            num = num*10+s[i]-'0';
        }else return;
    }
    switch (s[0]) {
        case 'W': v[0]+=num;break;
        case 'A': v[1]-=num;break;
        case 'S': v[0]-=num;break;
        case 'D': v[1]+=num;break;
        default: return;
    }
    return;
    
}
int main() {
    int a=0,b=0;
    string s;
    vector<int> vec(2,0);
    string tmp="";
    getline(cin,s);
    for(auto i:s){
        if(i==';'){
            getValid(tmp,vec);
            tmp = "";
        }
        else tmp+=i;
    }
    cout<<vec[1]<<','<<vec[0];

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

记录一下

全部评论

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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