前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode-657-Judge Route Circle

leetcode-657-Judge Route Circle

作者头像
chenjx85
发布2018-05-22 16:37:36
4620
发布2018-05-22 16:37:36
举报
文章被收录于专栏:chenjx85的技术专栏

题目描述:

Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.

The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L(Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle.

Example 1:

代码语言:javascript
复制
Input: "UD"
Output: true

Example 2:

代码语言:javascript
复制
Input: "LL"
Output: false

要完成的函数:

bool judgeCircle(string moves) 

说明:

1、这道题目不难,看到给的两个例子之后,第一时间就想到了括号匹配,但这道题目比括号匹配还容易。

给定的string之中,U和D的个数必须相等,L和R的个数必须相等,最后才会回到原点。

所以我们可以设计两个变量count1和count2来存储这两种信息,如下构造代码:

代码语言:javascript
复制
    bool judgeCircle(string moves) 
    {
        int count1=0,count2=0;
        int s1=moves.size();
        for(int i=0;i<s1;i++)
        {
            if(moves[i]=='U')
                count1++;
            else if(moves[i]=='D')
                count1--;
            else if(moves[i]=='L')
                count2--;
            else if(moves[i]=='R')
                count2++;
        }
        if(count1==0&&count2==0)
            return true;
        else
            return false;
    }

上述代码遍历一遍给定的字符串,就可以得到结果,十分简洁。

上述代码实测19ms,beats 95.68% of cpp submissions。

2、改进:

上述这种做法在for循环内部不断地条件判断,这样做有点浪费时间。

笔者原本想改成unordered_map来存储,每次碰到一个字母,直接用unordered_map就得到要+1还是-1的结果。

但面临一个问题,怎样区分开UD和LR?碰到U是+1,碰到R也是+1。

同学们有什么想法吗?或者使用别的更加快的方法来完成这道题目?

欢迎在评论中留言!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述:
  • 要完成的函数:
  • 说明:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档