题解 | #坐标移动#

坐标移动

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

c++非正则表达式

首先将输入的字符串分割 采用getline(cin,char *s,char t)方法:

1.getline(输入流,装载输入流的缓冲区,分割符默认是,'\n'换行符)。本题是以';'进行分割的

  1. 构造函数识别全数字的方法isNum()

具体代码实现如下

#include <string.h>
using namespace std;
bool isNum(string s){
    int len=s.size();
    for(int i=0;i<len;i++){
        if('0'<=s[i]&&s[i]<='9')continue;
        else return false;
    }
    return true;
}
int main(){
    string s;
    pair<int,int>p(0,0);
   while(getline(cin, s, ';')){
       if(s.empty())continue;
          string s1=s.substr(1);
          
       if(isNum(s1)){
           switch(s[0]){
               case 'A':
                   p.first-=stoi(s1);
                   break;
               case 'D':
                   p.first+=stoi(s1);
                   break;
               case 'W':
                   p.second+=stoi(s1);
                   break;
               case 'S':
                   p.second-=stoi(s1);
                   break;
               default:
                   break;
           }
       }
   }
        cout<<p.first<<","<<p.second;
         return 0;
}
全部评论
为何在vs中没有输出
2 回复 分享
发布于 2023-07-20 12:59 贵州
厉害,但是坐标距离的大小是在两位数以内,这个忘记弄了
点赞 回复 分享
发布于 2024-07-19 00:49 河南
不全对,仍然样例都过了,但是仔细分析代码过程是不符合题目的
点赞 回复 分享
发布于 2024-03-27 08:43 山东
答案不严谨,当分隔的s为"A"时,s1为空字符串,stoi会报异常;
点赞 回复 分享
发布于 2023-02-01 17:28 广东

相关推荐

07-24 13:43
门头沟学院 Java
longerluck...:我猜说的是“你真**是个天才”
投递美团等公司10个岗位
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
拒绝无效加班的小学生...:期望3k吗?java这辈子有了
点赞 评论 收藏
分享
07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
07-25 11:12
重庆大学 C++
既然这么缺人,为什么挂我呢
飞花断音:华为需要学历不高,但是很能干事儿,能吃苦也没怨言,愿意无偿加班,最好上有老下有小,不是独生子女,家庭条件不好,家在外地租房住,生活成本高,不会轻易跳槽,并且愿意接受低工资的奴仆任劳任怨地给任总的女儿买大别墅住
点赞 评论 收藏
分享
评论
50
3
分享

创作者周榜

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