题解 | #坐标移动#

坐标移动

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

简单正则表达式匹配思路,容易理解。
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include<regex>
using namespace std;

int main(){
    string s;
    getline(cin,s);
    int x=0,y=0;
    int j=0;
    for(int i=0;i<s.size();++i)
    {
        if(s[i]==';')
        {
            string t=s.substr(j,i-j);
            regex pattern("^([ASWD]{1})(\\d{1,2})$");
            smatch result;
            bool flag=regex_match(t,result,pattern);
            if(flag)
            {
                if(result[1]=='A') x-=stoi(result[2]);
                else if(result[1]=='D') x+=stoi(result[2]);
                else if(result[1]=='S') y-=stoi(result[2]);
                else if(result[1]=='W') y+=stoi(result[2]);
            }
            while(i<s.size()&&s[i+1]==';') ++i;
            j=i+1;
        }
    }
    cout<<x<<','<<y<<endl;
}


全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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