题解 | #坐标移动#

坐标移动

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

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

bool hastwo(string s){
    for(auto ch:s.substr(1))
        if(isupper(s[0])&&isupper(ch))
            return true;
    return false;
}

int main() {
    int x = 0, y = 0;
    string movement="", sentence;
    vector<string> movements;
    getline(cin, sentence);
    for(int i = 0;i<sentence.size();i++){
        if(sentence[i]==';'){
            if(movement != ""){
                movements.push_back(movement);
                movement = "";
            }
            continue;
        }
        movement.push_back(sentence[i]);
    }
    for(auto m:movements){
        if(m.size()<2)
            continue;
        else if(!isupper(m[0]))
            continue;
        else if(m.size() >=4)
            continue;
        else if(hastwo(m))
            continue;
        else {
            int tmp = atoi(m.substr(1).c_str());
            switch(m[0]){
                case 'A':x -=tmp;break;
                case 'D':x += tmp;break;
                case 'W':y+=tmp;break;
                case 'S':y-=tmp;break;
                default:
                    continue;
            }
        }
    }
    cout << x<<","<<y<<endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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