LeetCode 1436. 旅行终点站

作者: freesan44 | 来源:发表于2021-10-25 07:26 被阅读0次

    题目

    给你一份旅游线路图,该线路图中的旅行线路用数组 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
    所有字符串均由大小写英文字母和空格字符组成。

    解题思路

    class Solution:
        def destCity(self, paths: List[List[str]]) -> str:
            # 用字典形式存储地点
            resDict = dict()
            for iList in paths:
                #如果地点存在,就删除【因为本来就是对数存在】,不存在就添加,并记录是起点还是终点
                for index,val in enumerate(iList):
                    if val in resDict:
                        del resDict[val]
                    else:
                        resDict[val] = index
            for key,val in resDict.items():
                #val== 1为终点位置
                if val == 1:
                    return key
    
    
    
    
    if __name__ == '__main__':
        paths = [["London","New York"],["New York","Lima"],["Lima","Sao Paulo"]]
        ret = Solution().destCity(paths)
        print(ret)
    

    相关文章

      网友评论

        本文标题:LeetCode 1436. 旅行终点站

        本文链接:https://www.haomeiwen.com/subject/wedpwltx.html