[LeetCode] Judge Route Circle 判断路线绕圈

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:

Input: "UD"
Output: true

Example 2:

Input: "LL"
Output: false 

这道题让我们判断一个路径是否绕圈,就是说有多少个U,就得对应多少个D。同理,L和R的个数也得相等。这不就是之前那道Valid Parentheses的变种么,这次博主终于举一反三了!这比括号那题还要简单,因为括号至少还有三种,这里就水平和竖直两种。比较简单的方法就是使用两个计数器,如果是U,则cnt1自增1;如果是D,cnt1自减1。同理,如果是L,则cnt1自增1;如果是R,cnt1自减1。最后只要看cnt1和cnt2是否同时为0即可,参见代码如下:

解法一:

class Solution {

public:
    bool judgeCircle(string moves) {
        int cnt1 = 0, cnt2 = 0;
        for (char move : moves) {
            if (move == 'U') ++cnt1;
            else if (move == 'D') --cnt1;
            else if (move == 'L') ++cnt2;
            else if (move == 'R') --cnt2;
        }
        return cnt1 == 0 && cnt2 == 0;
    }
}; 

下面这种解法使用了哈希表来建立字符和其出现的次数之间的映射,最后直接比较对应的字符出现的次数是否相等即可,参见代码如下:

解法二:

class Solution {

public:
    bool judgeCircle(string moves) {
        unordered_map<char, int> m;
        for (char c : moves) ++m[c];
        return m['L'] == m['R'] && m['U'] == m['D'];
    }
};

参考资料: 

https://discuss.leetcode.com/topic/99256/c-counter-4-lines-solution 

本文转自博客园Grandyang的博客,原文链接:[LeetCode] Judge Route Circle 判断路线绕圈

,如需转载请自行联系原博主。

时间: 2024-09-20 07:40:24

[LeetCode] Judge Route Circle 判断路线绕圈的相关文章

LeetCode All in One 题目讲解汇总(持续更新中...)

终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 如果各位看官们,大神们发现了任何错误,或是代码无法通过OJ,或是有更好的解法,或是有任何疑问,意见和建议的话,请一定要在对应的帖子下面评论区留言告知博主啊,多谢多谢,祝大家刷得愉快,刷得精彩,刷出美好未来- 博主制作了一款iOS的应用"Leetcode Meet Me",里面有Leetcode上所有的题目,并且贴上了博主的解法,随时随地都能

王健:在能力圈中投资

每个人平时都会接触到很多公司和品牌,不妨把这些公司当成自己的"能力圈",认真观察了解他们,这样不仅可能赚钱,还可能有很多乐趣. 从前有个古董商,既买古董也卖古董.他是个情绪波动很大的人.当他的店里顾客很多,人们争相购买时,他会情绪高涨,觉得所有的商品都很值钱,于是全面抬价:当生意惨淡,无人问津,他会情绪低落,觉得所有的商品都一钱不值,于是全面降价.他也是个很公平的人,他一旦给一个货物标了价,人们可以从他那儿买,也可以以基本相同的价钱把同一种货物卖给他. 要从这个人身上赚钱很容易.你只要

刚学编程,写了个判断独立点与多边形位置关系的算法(C#)

编程|算法 #region Using directives using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Windows.Forms; #endregion namespace p_polygon{ partial class Form1 : Form { public Form1() {

微信最后一个宝藏—朋友圈也要上广告,下一个社交平台是什么?

微信最后一个宝藏-朋友圈终于要上广告了.虽然开始是创意较好的CPT品牌广告,但之后还是会向CPC效果广告过渡. 微信朋友圈广告的加入,将使得短期业绩有大幅上升.腾讯广点通产品,在移动端的展示次数应该可以直接翻倍.而带来的广告收益,则同时受益于流量的上升,和CPC的上升(因为竞价更加充分).我认为腾讯公司的互联网广告业务,2015年二季度或三季度达到40亿是大概率事件(2014年三季度为24亿). 但这只是短多.长空则是因为,我判断随着朋友圈信息流广告的加入,在一到两年内会出现替代性的社交平台.其

MAPINFO 判断坐标点所属道路,有什么办法?

问题描述 做GSP超速监控,遇到一个问题:GPS传回了位置信息.速度信息.1.直接设定速度值可以进行超速监控.但,能否通过位置,判断道路的类别,如:高速.国道.省道.城区道路等.车辆在不同的道路时,设定不同的限制速度?2.需要判断坐标点所属的道路,GSP数据信息量大,如何能快速判断所属的道路呢?我用的四维地图.高速.国道.省道.城区道路等在不同的图层.第一次在这里提问题,希望大家支持一下.先谢谢!! 解决方案 解决方案二:该回复于2011-08-24 09:22:35被版主删除解决方案三:1,可

计算机专业常用英语

计算机专业常用英语 1.  file    n. 文件:v. 保存文件 2.  command    n. 命令,指令 3.  use    v. 使用,用途 4.  program    n. 程序 5.  line    n. (数据,程序)行,线路 6.  if    conj. 如果 7.  display    vt. 显示,显示器 8.  set    v. 设置,n. 集合 9.  key    n. 键,关键字,关键码 10.  list    n. 列表,显示,v. 打印 11

计算机专用英语词汇1695个词汇表

特别感谢: 不愿意透露姓名的小虾同学提供的音标部分 1.单词说明: command n. 命令,指令 [kə'mɑ:nd] 单词拼写 名词 单词含义 音标(发音) 提示:着重记忆单词对应的意思,有能力最好词性也记忆. 2.词性说明: n       v      vi                 vt      conj  prep  pron  adj     adv  名词  动词  非及物动词  及物动词  连词  介词   代词   形容词  副词  3.单词列表:  1.file,

Facebook除了抄袭Snapchat,还做什么?

在上篇文章<只知道Facebook是做社交网站的?那就落后了>中,Facebook好像被描述成为Snapchat的"忠实抄袭者". 事实也如此,Facebook并没有停止抄袭步伐,去年8月在Instagram上抄袭了Snapchat的Story功能之后,最近又在其Messenger app里添加Messenger Day功能:分享照片和视频在24小时内消失,几乎和Snapchat的Story功能一模一样. Facebook再次以Snapchat"忠实抄袭者&quo

银河娱乐吕志和:熟悉内地中产宿赌王从不赌博

十年前,没有人会说澳门是远东的拉斯维加斯:但今日,这样的说法是贬低了澳门--澳门去年的博彩收入452亿美元,是拉斯维加斯皿倍.从1999年末回归臿013年末,累计超迿0亿人次经珠海口岸出入澳门,游客为澳门带来了大量收入.尤其从2007年美资金沙集团开始了在澳门路凼的豪华酒店建设竞赛开始,2008-2012年间,澳门赌博营收平均年成长率达29%,现在,世界上已经没有任何地区的成长能企及澳门〿/p> 金沙集团的董事长萧登·艾德森(SheldonAdelson)说过,"(2008年)每个人都认为