题解 | #坐标移动#

坐标移动

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;
}


全部评论

相关推荐

Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务