当前位置:网站首页>leetcode之判断路径是否相交
leetcode之判断路径是否相交
2020-11-07 21:43:00 【go4it】
序
本文主要记录一下leetcode之判断路径是否相交
题目
给你一个字符串 path,其中 path[i] 的值可以是 'N'、'S'、'E' 或者 'W',分别表示向北、向南、向东、向西移动一个单位。
机器人从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。
如果路径在任何位置上出现相交的情况,也就是走到之前已经走过的位置,请返回 True ;否则,返回 False 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/path-crossing
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
class Solution {
public boolean isPathCrossing(String path) {
int x = 0;
int y = 0;
Set<String> pathSet = new HashSet<String>();
pathSet.add("00");
for (char c : path.toCharArray()) {
if (c == 'N') {
y++;
} else if (c == 'S') {
y--;
} else if (c == 'W') {
x--;
} else if (c == 'E') {
x++;
}
String p = String.valueOf(x) + String.valueOf(y);
if (pathSet.contains(p)) {
return true;
}
pathSet.add(p);
}
return false;
}
}
小结
这里维护走过的点,然后遍历path的字符,对x,y坐标进行相应移动,每次移动之后都判断下该点是否走过,走过则返回true,没有则将改点记录到走过的的点中,遍历完都没有符合条件就返回false。
doc
版权声明
本文为[go4it]所创,转载请带上原文链接,感谢
https://my.oschina.net/go4it/blog/4707740
边栏推荐
- 一万四千字分布式事务原理解析,全部掌握你还怕面试被问?
- go wire 依赖注入入门
- Idea - the. IML file was not automatically generated by the project
- Do not understand the underlying principle of database index? That's because you don't have a B tree in your heart
- ngnix集群高并发
- 统计文本中字母的频次(不区分大小写)
- 【解决方案】分布式定时任务解决方案
- AFO记
- Web Security (4) -- XSS attack
- easyui dialog“缓存问题”
猜你喜欢
use Xunit.DependencyInjection Transformation test project
laravel8更新之维护模式改进
手撕算法-手写单例模式
Jingtao project day09
14000 word distributed transaction principle analysis, master all of them, are you afraid of being asked in the interview?
Everything is 2020, LINQ query you are still using expression tree
Using pipe() to improve code readability in pandas
Hand tearing algorithm - handwritten singleton mode
年薪90万程序员不如月入3800公务员?安稳与高收入,到底如何选择?
Git code submission operation, and git push prompt failed to push some refs'xxx '
随机推荐
Thinkphp6中where条件中字段与字段比较条件的写法
工作1-3年的程序员,应该具备怎么样的技术能力?该如何提升?
ROS learning: remote start ROS node
Python 图片识别 OCR
Ac86u KX Online
Using subprocess residue in supervisor and python multiprocessing
On hiz buffer
How to learn technology efficiently
密码学-尚硅谷
What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?
Hand tearing algorithm - handwritten singleton mode
Adobe Lightroom /Lr 2021软件安装包(附安装教程)
统计文本中字母的频次(不区分大小写)
AFO记
微服务的出现和意义的探索
ROS学习---远程启动ROS节点
什么都2020了,LINQ查询你还在用表达式树
supervisor进程管理安装使用
编程界大佬教你:一行Python代码能做出哪些神奇的事情?
Using pipe() to improve code readability in pandas