[leetcode] 1436. Destination City

農民小飛俠發表於2020-11-06

Description

You are given the array paths, where paths[i] = [cityAi, cityBi] means there exists a direct path going from cityAi to cityBi. Return the destination city, that is, the city without any path outgoing to another city.

It is guaranteed that the graph of paths forms a line without any loop, therefore, there will be exactly one destination city.

Example 1:

Input: paths = [["London","New York"],["New York","Lima"],["Lima","Sao Paulo"]]
Output: "Sao Paulo" 
Explanation: Starting at "London" city you will reach "Sao Paulo" city which is the destination city. Your trip consist of: "London" -> "New York" -> "Lima" -> "Sao Paulo".

Example 2:

Input: paths = [["B","C"],["D","B"],["C","A"]]
Output: "A"
Explanation: All possible trips are: 
"D" -> "B" -> "C" -> "A". 
"B" -> "C" -> "A". 
"C" -> "A". 
"A". 
Clearly the destination city is "A".

Example 3:

Input: paths = [["A","Z"]]
Output: "Z"

Constraints:

  • 1 <= paths.length <= 100
  • paths[i].length == 2
  • 1 <= cityAi.length, cityBi.length <= 10
  • cityAi != cityBi
  • All strings consist of lowercase and uppercase English letters and the space character.

分析

題目的意思是:給了一個出發地到目的地的陣列,然後找出最後的目的地字串。我的思路也是很直接,用字典構建一個有向圖,然後從任意幾點出發,深度遍歷有向圖,直到找到最終的城市為止。

看了一下別人實現的,思路基本差不多。

程式碼

class Solution:
    def destCity(self, paths: List[List[str]]) -> str:
        d={}
        for path in paths:
            d[path[0]]=path[1]
        des=paths[0][0]
        while(des in d):
            des=d[des]
        return des

參考文獻

[LeetCode] Easy Python Solution - 99.9% time, 100% space.

相關文章