题解 | #坐标移动#

坐标移动

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

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int coordinate_movement(string str){//定义坐标移动函数
    vector<string> s;
    int x=0,y=0;
    int k=0;
    int maxn=str.size();
    for(int i=0;i<maxn;i++){//分割字符串
        if(str[i]!=';'){
            k++;
            continue;
        }
        s.push_back(str.substr(i-k, k));
        k=0;
        
    }
    int len=s.size();
    for(int i=0;i<len;i++){
        int num=0;
        if((s[i].size()==3)&&((isdigit(s[i][1])&&(isdigit(s[i][2]))))){
            num=(s[i][1]-'0')*10+s[i][2]-'0';//若有三位则后两位代表移动额距离
        }
        if((s[i].size()==2)&&(isdigit(s[i][1]))){
            num=(s[i][1]-'0');//若有两位则第二位代表移动的距离
        }
        if(s[i][0]=='A'){//确定坐标移动的方位并改变坐标
            x-=num;
        }
        if(s[i][0]=='D'){
            x+=num;
        }
        if(s[i][0]=='S'){
            y-=num;
        }
        if(s[i][0]=='W'){
            y+=num; 
        }
    }
    cout<<x<<','<<y<<endl;
    return 0;
}
int main(){
    string str;
    while(cin>>str){
        coordinate_movement(str);
    }
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-10 15:24
高考前一晚在OPPO手机上设置了早上5:30的闹钟,然而闹钟并未按时响起。直到妈妈做好早餐后,在6:27打开手机才发现闹钟未触发,“气得早上饭都没吃”。资本家你赢了
永不遗忘:我来解释一下 :Oppo 手机晚上两点会自动进行系统更新,这个系统更新会重置掉所有设置好的闹钟,而且他也不会告诉你,而且只有 Oppo 会这样,华为苹果小米三星都不会
点赞 评论 收藏
分享
04-18 15:58
已编辑
门头沟学院 设计
kaoyu:这一看就不是计算机的,怎么还有个排斥洗碗?
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhang:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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