题目

给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。
题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点站。
示例 1:
输入:paths = [[“London”,“New York”],[“New York”,“Lima”],[“Lima”,“Sao Paulo”]]
输出:“Sao Paulo”
解释:从 “London” 出发,最后抵达终点站 “Sao Paulo” 。本次旅行的路线是 “London” -> “New York” -> “Lima” -> “Sao Paulo” 。
示例 2:
输入:paths = [[“B”,“C”],[“D”,“B”],[“C”,“A”]]
输出:“A”
解释:所有可能的线路是:
“D” -> “B” -> “C” -> “A”.
“B” -> “C” -> “A”.
“C” -> “A”.
“A”.
显然,旅行终点站是 “A” 。
示例 3:
输入:paths = [[“A”,“Z”]]
输出:“Z”
提示:
1 <= paths.length <= 100
paths[i].length == 2
1 <= cityAi.length, cityBi.length <= 10
cityAi != cityBi
所有字符串均由大小写英文字母和空格字符组成。
来源:力扣(LeetCode)

解题思路

  仔细观察示例1,这个题其实就是找到一个cityBi,这个cityBi不和任意的cityAi相等。假如我们用cityAi作为key,cityBi作为value,那么旅游过程就是从cityAi出发它的BI作为一个新的key继续访问其他的value,这是一个套娃的过程,我们用字典来模仿即可。

class Solution:def destCity(self, paths: List[List[str]]) -> str:d={}for i,j in paths: #建立键值对d[i]=jdef travel(i):try:return travel(d[i])  #尝试将旧的value作为新的key进行访问except:return i  #如果没有key等于此value则它是终点return travel(paths[0][0])

LeetCode简单题之旅行终点站相关推荐

  1. LeetCode简单题之基于排列构建数组

    题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...

  2. LeetCode简单题之Excel 表中某个范围内的单元格

    题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...

  3. LeetCode简单题之增量元素之间的最大差值

    题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...

  4. LeetCode简单题之二进制矩阵中的特殊位置

    题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...

  5. LeetCode简单题之设计 Goal 解析器

    题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...

  6. LeetCode简单题之检查两个字符串数组是否相等

    题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...

  7. LeetCode简单题之找出数组的最大公约数

    题目 给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 . 两个数的 最大公约数 是能够被两个数整除的最大正整数. 示例 1: 输入:nums = [2,5,6,9,10] 输出: ...

  8. LeetCode简单题之排列硬币

    题目 你总共有 n 枚硬币,并计划将它们按阶梯状排列.对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币.阶梯的最后一行 可能 是不完整的. 给你一个数字 n ,计算并返回可形成 完整阶 ...

  9. LeetCode简单题之棒球比赛

    题目 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops[ ...

最新文章

  1. php-cgi 重启,自动监测和重启 FastCGI 服务
  2. linux awk命令用途,Linux:“awk”命令的妙用
  3. 【推书】重新定义公司--来自Google运营之道
  4. distinct的用法
  5. python写一个ssh工具_用Python写个自动ssh登录远程服务器的小工具
  6. 350个特性看透ES6
  7. html to docx
  8. day03 Python爬虫
  9. php如何生成一年的日历表_PHP生成的日历
  10. 迅雷7新版支持迷你播放器和应用平台
  11. 火车头 php 插件,插件 - 火车采集器官方博客
  12. 感谢csdn 2021年中秋月饼礼盒
  13. 探访广州黑人区,我好像来到非洲
  14. 三十了终于明白了些事
  15. 全网心疼的鸿星尔克,距离安踏还差两个李宁
  16. vue+element-ui+js页面打印(打印elementui的table)
  17. 淘宝天猫除了领优惠券,还可以领商家返利,这个你们知道吗?
  18. 核实c#语言教程,C#教程方法用法 _C#语言-w3school教程
  19. Unity Hub 无法登录
  20. C语言 实验11-1-9 藏尾诗 (20分)

热门文章

  1. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string
  2. etcd 笔记(06)— Client 结构定义、客户端(初始化、KV存储Get、Put、事务 Txn、压缩 Compact、Watch、Lease
  3. Minkowski坐标管理
  4. 硬件安全模块如何启用AUTOSAR
  5. CUDA 11功能展示
  6. AttributeError: module ‘os‘ has no attribute ‘mknod‘
  7. Android Studio 引入aar文件
  8. RecyclerView 点击Item 改变文字颜色以及所在的背景色
  9. shell 跟踪命令
  10. 微信小程序wx.request POST获取不到数据解决办法