zoukankan      html  css  js  c++  java
  • 1436. 旅行终点站『简单』

    题目来源于力扣(LeetCode

    一、题目

    1436. 旅行终点站

    题目相关标签:字符串

    提示:

    • 1 <= paths.length <= 100
    • paths[i].length == 2
    • 1 <= cityAi.length, cityBi.length <= 10
    • cityAi != cityBi
    • 所有字符串均由大小写英文字母和空格字符组成。

    二、解题思路

    1. 据题解可知:旅行终点站即是没有任何指向的字符串

    2. 遍历 paths 列表,因列表中的嵌套列表仅有两个元素,则使用 map 来记录字符串,索引 0 上的元素为键,索引 1 上的元素为值

    3. 查找 map,找到键映射为空的字符串,没有值即是没有下一个旅行点,即终点站

    三、代码实现

    public static String destCity(List<List<String>> paths) {
        Map<String, String> map = new HashMap<>();
        for (List<String> list : paths) {
            // 键为起点,值为终点
            map.put(list.get(0), list.get(1));
        }
        // 初始查找值为 paths 的第一个列表的第一个元素
        String str = paths.get(0).get(0);
        // 该字符串找不到对应的值时,说明为终点
        while (map.containsKey(str)) {
            // 每次更新查找的键,map 值即为下一个旅行站的起点
            str = map.get(str);
        }
        return str;
    }
    

    四、执行用时

    五、部分测试用例

    public static void main(String[] args) {
        List<List<String>> paths = new ArrayList<>();
        List<String> list = new ArrayList<>();
        list.add("London");
        list.add("New York");
        paths.add(list);
    
        list.add("New York");
        list.add("Lima");
        paths.add(list);
    
        list.add("Lima");
        list.add("Sao Paulo");
        paths.add(list);  // output:"Sao Paulo"
        
        String result = destCity(paths);
        System.out.println(result);
    }
    
  • 相关阅读:
    每天一个Linux命令(03):du命令
    每天一个linux命令(02):route命令
    Ubuntu相关配置
    kvm 虚拟机XML文件
    virtio,macvtap,sriov
    dns配置文件
    Bug预防体系(上千bug分析后总结的最佳实践)
    python-函数
    python实用脚本集
    深入浅出QOS详解(转)
  • 原文地址:https://www.cnblogs.com/zhiyin1209/p/13020411.html
Copyright © 2011-2022 走看看