设为首页 收藏本站
查看: 1433|回复: 0

[经验分享] 华为机试题 坐标移动

[复制链接]

尚未签到

发表于 2017-7-10 17:30:11 | 显示全部楼层 |阅读模式
题目描述

  开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
  输入:
  合法坐标为A(或者D或者W或者S) + 数字(两位以内)
  坐标之间以;分隔。
  非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。
  下面是一个简单的例子 如:
  A10;S20;W10;D30;X;A1A;B10A11;;A10;
  处理过程:
  起点(0,0)
  +   A10   =  (-10,0)
  +   S20   =  (-10,-20)
  +   W10  =  (-10,-10)
  +   D30  =  (20,-10)
  +   x    =  无效
  +   A1A   =  无效
  +   B10A11   =  无效
  +  一个空 不影响
  +   A10  =  (10,-10)
  结果 (10, -10)
  


输入描述:
  一行字符串



输出描述:
  最终坐标,以,分隔


输入例子:
A10;S20;W10;D30;X;A1A;B10A11;;A10;
输出例子:
10,-10

来源: http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29?tpId=37&tqId=21240&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking

  该题先预处理一下,取得所有的指令的列表,再一次处理会比较简单
  然后根据题意,正常的指令要么是3个字符A10   要么是2个字符  A1
  所以根据指令的长度先排除一些错误指令,然后根据指令的特点继续排除和处理指令
  这道题需要注意是要考虑处理多行指令,所以最外层要有while循环




#include<iostream>
#include<vector>

using namespace std;

int main(){
    string s;
    while(getline(cin,s))
    {
        int heng=0;
        int zong=0;
        string temp;
        vector<string> vs;
        temp.clear();
        for(int i=0;i<s.size();i++){
            if(s==';'){
                vs.push_back(temp);
                temp.clear();
            }
            else{
                temp.push_back(s);
            }
        }
        for(int i=0;i<vs.size();i++)
        {
            if(vs.size()==2 || vs.size()==3)  
            {
                if(vs[0]=='A' || vs[0]=='W' || vs[0]=='S' || vs[0]=='D')
                {
                    if(vs.size()==2){
                        if(vs[1]>='0' && vs[1]<='9')
                        {
                            if(vs[0]=='A')
                                heng=heng-(vs[1]-'0');
                            else if(vs[0]=='D')
                                heng=heng+(vs[1]-'0');
                            else if(vs[0]=='W')
                                zong=zong+(vs[1]-'0');
                            else if(vs[0]=='S')
                                zong=zong-(vs[1]-'0');   
                        }
                        else
                            continue;
                    }
                    else if(vs.size()==3){
                        if(vs[1]>='0' && vs[1]<='9' && vs[2]>='0' && vs[2]<='9')
                        {
                            if(vs[0]=='A')
                                heng=heng-(vs[1]-'0')*10-(vs[2]-'0');
                            else if(vs[0]=='D')
                                heng=heng+(vs[1]-'0')*10+(vs[2]-'0');
                            else if(vs[0]=='W')
                                zong=zong+(vs[1]-'0')*10+(vs[2]-'0');
                            else if(vs[0]=='S')
                                zong=zong-(vs[1]-'0')*10-(vs[2]-'0');
                        }
                        else
                            continue;
                    }
                }
                else
                    continue;
            }
            else
                continue;
        }
        cout<<heng<<","<<zong<<endl;
        s.clear();
    }
}



来自为知笔记(Wiz)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-392446-1-1.html 上篇帖子: 华为实习日记——第三十二天 下篇帖子: [华为]字符串排序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表