题解 | #坐标移动#

坐标移动

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

#include <iostream>
using namespace std;
int IS_ADWS(char c){
    switch (c) {
    case 'A':
        return 13;
        break;
    case 'D':
        return 14;
        break;
    case 'W':
        return 15;
        break;
    case 'S':
        return 16;
        break;
    case ';':
        return 12;
        break;
    default:
        if(c>='0'&&c<='9')
            return c-'0';
        else return 11;
             
    }
}
int main() {
    string s;
    int flag;
    int x=0;
    int y=0;
    getline(cin,s);
    for(int i=0;i<s.size();++i){
        if(IS_ADWS(s[i])==11){
            while (IS_ADWS(s[++i])!=12);// 一直跳过
            flag=0; 
        }
        int temp_sum = 0;
        while(IS_ADWS(s[i])!=12){
            if(IS_ADWS(s[i])>12){
                if(flag>12){
                    while (IS_ADWS(s[++i])!=12);// 一直跳过
                    flag=0; 
                }else if (flag==0) {
                    flag=IS_ADWS(s[i++]);
                }
            }else {
                temp_sum =temp_sum*10+IS_ADWS(s[i++]);
            }
        }
        if(flag>0){
            switch(flag){
                case 13:
                    x-=temp_sum;
                    break;
                case 14:
                    x+=temp_sum;
                    break;
                case 15:
                    y+=temp_sum;
                    break;
                case 16:
                    y-=temp_sum;
                    break;
            }
            // cout<<flag<<' '<<temp_sum<<endl;;?
        }
        flag=0;
    }
    cout<<x<<','<<y<<endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
2025-11-26 11:32
已编辑
好未来_go开发(实习员工)
不服输的咸鱼很聪明:还给打电话呀,我的没给我打电话呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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