题解 | #坐标移动#

坐标移动

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

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

int main() {
    string s;
    cin>>s;
    //vector<string> vec;
    int x=0;
    int y=0;
    int end=0;
    for(int i=0;i<s.size();i++)
    {
        end=i;
        while(s[end]!=';'&&end<s.size())
        {
            end++;
        }
        string str=s.substr(i,end-i);

        if(str.size()<=3&&str.size()>=2)
        {
            //vec.push_back(str);
            if(str[0]=='A')
            {
                str.erase(0,1);
  
                if(str.size()==1&&str[0]>='0'&&str[0]<='9')
                {
                    x=x-(str[0]-'0');
                }
                if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
                {
                    x=x-((str[0]-'0')*10+(str[1]-'0'));
                }
            }
            else if(str[0]=='D')
            {
                str.erase(0,1);
                if(str.size()==1&&str[0]>='0'&&str[0]<='9')
                {
                    x=x+(str[0]-'0');
                }
                if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
                {
                    x=x+((str[0]-'0')*10+(str[1]-'0'));
                }
            }
            else if(str[0]=='W')
            {
                str.erase(0,1);
                if(str.size()==1&&str[0]>='0'&&str[0]<='9')
                {
                    y=y+(str[0]-'0');
                }
                if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
                {
                    y=y+((str[0]-'0')*10+(str[1]-'0'));
                }
            }
            else if(str[0]=='S')
            {
                str.erase(0,1);
                if(str.size()==1&&str[0]>='0'&&str[0]<='9')
                {
                    y=y-(str[0]-'0');
                }
                if(str.size()==2&&str[0]>='0'&&str[0]<='9'&&str[1]>='0'&&str[1]<='9')
                {
                    y=y-((str[0]-'0')*10+(str[1]-'0'));
                }
            }

        }
        i=end;
    }
    cout<<x<<","<<y;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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