宝可梦进化ing 2021-04-06 22:33 采纳率: 0%
浏览 46

单词转换 , 单词转换,求大神光临

#求求给个说法啊
为什么它就运行不了呢?

 

题目

给定字典中的两个词,长度相等。写一个方法,把一个词转换成另一个词, 但是一次只能改变一个字符。每一步得到的新词都必须能在字典中找到。

编写一个程序,返回一个可能的转换序列。如有多个可能的转换序列,你可以返回任何一个。

示例 1:

输入:
beginWord = "hit",
endWord = "cog",
wordList = ["hot","dot","dog","lot","log","cog"]

输出:
["hit","hot","dot","lot","log","cog"]
示例 2:

输入:
beginWord = "hit"
endWord = "cog"
wordList = ["hot","dot","dog","lot","log"]

输出: []


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/word-transformer-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码

public List<String> findLadders(String beginWord, String endWord, List<String> wordList) {
        Queue<String> queue = new LinkedList<>();   //用来走路的
        Map<String,String> visited = new HashMap(); //可以保存走过的word,还有它的父节点
        queue.add(beginWord);   //开始遍历
        Deque<String> list = new LinkedList<>();    //最后的返回值
        visited.put(beginWord,beginWord);
        while (!queue.isEmpty()){
            int size = queue.size();//这次的父类有几个
            for (int i = 0; i < size; i++){     //这波的父类遍历
                String s = queue.poll();
                if (s.equals(endWord)){     // successive match
                    list.addFirst(endWord);     //from end to begin
                    String t = endWord;
                    while (!t.equals(beginWord)){
                        t = visited.get(endWord);
                        list.addFirst(t);
                    }
                    return (List<String>) list;
                }
                for (var n : wordList){     //not match, add child node
                    if (isadj(s,n) && !visited.containsKey(n)){//is adj and not have visit
                        visited.put(n,s);
                        queue.add(n);
                    }
                }
            }
        }
        return (List<String>)list;
    }
    boolean isadj(String s, String n){
        int k = 0;
        for (int i = 0; i < s.length(); i++)
            if (s.charAt(i) != n.charAt(i))
                k++;
        return k == 1;
    }

 

 

  • 写回答

2条回答 默认 最新

  • SoftwareTeacher 《编程之美》作者 2021-04-06 22:44
    关注

    具体出了说明错误呢?

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题