题目

给你一个字符串 path,其中 path[i] 的值可以是 ‘N’、‘S’、‘E’ 或者 ‘W’,分别表示向北、向南、向东、向西移动一个单位。
你从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。
如果路径在任何位置上与自身相交,也就是走到之前已经走过的位置,请返回 true ;否则,返回 false 。
示例 1:

输入:path = “NES”
输出:false
解释:该路径没有在任何位置相交。
示例 2:

输入:path = “NESWW”
输出:true
解释:该路径经过原点两次。
提示:
1 <= path.length <= 10^4
path[i] 为 ‘N’、‘S’、‘E’ 或 ‘W’
来源:力扣(LeetCode)

解题思路

  题目中给定的操作都是走一格,所以每一次操作都会生成一个新的位置,我们将操作中的位置记录下来,然后每一次操作都查找一下新的位置是否已经在记录里了,如果存在即为交叉。

class Solution:def isPathCrossing(self, path: str) -> bool:trace=set()trace.add((0,0))current=[0,0]def judge():if tuple(current) in trace:return Trueelse:trace.add(tuple(current))return Falsefor i in path:if i=='N':current[1]+=1if judge():return Trueelif i=='S':current[1]-=1if judge():return Trueelif i=='E':current[0]+=1if judge():return Trueelse:current[0]-=1if judge():return Truereturn False

LeetCode简单题之判断路径是否相交相关推荐

  1. LeetCode简单题之判断句子是否为全字母句

    题目 全字母句 指包含英语字母表中每个字母至少一次的句子. 给你一个仅由小写英文字母组成的字符串 sentence ,请你判断 sentence 是否为 全字母句 . 如果是,返回 true :否则, ...

  2. LeetCode简单题之判断矩阵经轮转后是否一致

    题目 给你两个大小为 n x n 的二进制矩阵 mat 和 target .现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 ,如果能够使 mat 与 target 一致,返回 true : ...

  3. LeetCode简单题之判断能否形成等差数列

    题目 给你一个数字数组 arr . 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 . 如果可以重新排列数组形成等差数列,请返回 true :否则,返回 false . ...

  4. LeetCode简单题之判断国际象棋棋盘中一个格子的颜色

    题目 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标.下图是国际象棋棋盘示意图. 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false ...

  5. LeetCode简单题之判断字符串的两半是否相似

    题目 给你一个偶数长度的字符串 s .将其拆分成长度相同的两半,前一半为 a ,后一半为 b . 两个字符串 相似 的前提是它们都含有相同数目的元音('a','e','i','o','u','A',' ...

  6. LeetCode简单题之反转字符串

    题目 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 示例 1: ...

  7. LeetCode简单题之长度为三且各字符不同的子字符串

    题目 如果一个字符串不含有任何重复字符,我们称这个字符串为 好 字符串. 给你一个字符串 s ,请你返回 s 中长度为 3 的 好子字符串 的数量. 注意,如果相同的好子字符串出现多次,每一次都应该被 ...

  8. LeetCode 1496. 判断路径是否相交(set)

    1. 题目 给你一个字符串 path,其中 path[i] 的值可以是 'N'.'S'.'E' 或者 'W',分别表示向北.向南.向东.向西移动一个单位. 机器人从二维平面上的原点 (0, 0) 处开 ...

  9. LeetCode简单题之相交链表

    题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表不存在相交节点,返回 null . 图示两个链表在节点 c1 开始相交: 题目数据 保证 ...

最新文章

  1. javascript 未结束字符串
  2. 手机开发必备技巧:javascript及CSS功能代码分享
  3. rediscluster全局数据_设计数据密集型应用(6-7):分片、事务
  4. 50条超精辟的经典语录:哗众,可以取宠,也可以失宠!
  5. c语言链表常错,C语言链表,哪里错了?
  6. java中文乱码decode_JAVA中文字符乱码解决详解
  7. (96)分频器设计(任意分频器)
  8. SpringBoot2.1.5(34)--- SpringBoot 实例
  9. css修改图片形状,css定位图形改(原创)
  10. python集合中的元素不能是哪些数据类型_Python内置类型及常见问题
  11. MFC工作笔记0001---认识MFC
  12. virtual box 安装win8 提示status: 0xc0000225错误的处理
  13. 【DCVRP】基于matlab蚁群算法求解带容量+距离的车辆路径规划问题【含Matlab源码 1038期】
  14. python手动垃圾回收_Python3学习笔记,F,垃圾,回收
  15. 解决-redis保存的中文变为unicode, redis的基本操作
  16. OpenLayers使用高德导航接口实现动画animate
  17. 功能测试与性能测试常见方法
  18. Packet Sniffing and Spoofing Lab(报文嗅探欺骗SEED 实验)
  19. Tkinter 组件详解(十):Scale
  20. Oracle 自动存储管理 (ASM)

热门文章

  1. 是否存在分布式的【大泥球】?
  2. 2022-2028年中国塑料人造革行业市场研究及前瞻分析报告
  3. 【UML建模】UML图详细总结
  4. 条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)
  5. pytorch中如何处理RNN输入变长序列padding
  6. Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译
  7. LeetCode简单题之二进制矩阵中的特殊位置
  8. Minkowski修剪
  9. 微信架构 支付架构(上)
  10. Tomcat之the jre_home environment variable is not defined correctly this environment variable is need