题解 | #坐标移动#

坐标移动

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

模拟

#include <iostream>
#include <string>
using namespace std;
int num(string s)
{
    int res = 0;
    for (int i = 0; i < s.size(); i ++ )
        if (s[i] >='A' && s[i] <= 'Z') return -112;
    for (int i = 0; i < s.size(); i ++ )
        res = res*10 + s[i] - '0';
    return res;
}
int main() {
    long long a = 0, b = 0;
    string s = "", tmp ="";
    cin >> s;
    for (int i = 0; i < s.size(); i ++ )
    {
        if (s[i] != ';')tmp += s[i];
        else {
            if (tmp[0] == 'A'||tmp[0]=='W'||tmp[0]=='S'||tmp[0]=='D')
            {
                int ss = tmp.size();
                string s1 = "";
                for (int j = 1; j < ss; j ++) s1 += tmp[j];
                int ans = num(s1);
                if (ans != -112)
                {
                    if (tmp[0] == 'A')a-=ans;
                    else if(tmp[0] == 'D')a+=ans;
                    else if (tmp[0] == 'W')b+=ans;
                    else if (tmp[0] == 'S')b-=ans;
                }
            }
            tmp = "";
        }
    }
    cout << a << "," << b << endl;
}

全部评论

相关推荐

03-06 18:20
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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