程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单词梯问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class WordLadder {  //把start通过Dict内的字符串转换成end需要多少步  一次只能转换一个char  方案:广度优先算法    public static void main(String[] args) {        String start = "hit";        String end = "cog";        Set<String> Dict = new HashSet<>();        Dict.add("hot");        Dict.add("dot");        Dict.add("dog");        Dict.add("lot");        Dict.add("log");        System.out.println(getStep(start,end,Dict));    }    public static int getStep(String start, String end, Set<String> Dict){        if(Dict==null||Dict.size()==0){            return 0;        }        Dict.add(end);        Queue<String> queue = new LinkedList<>();        queue.offer(start);        Set<String> duplicate = new HashSet<>();        int step = 1;        while (!queue.isEmpty()){            step++;            int size = queue.size();            for(int i=0;i<size;i++){                String word = queue.poll();                List<String> nextList = getNextList(word,Dict);                for(String s:nextList){                    if(duplicate.contains(s)){                        conTinue;                    }                    if(s.equals(end)){                        return step;                    }                    duplicate.add(s);                    queue.offer(s);                }            }        }        return -1;    }    private static List<String> getNextList(String word, Set<String> Dict) {        List<String> nextList = new ArrayList<>();        for(char i='a';i<'z';i++){            for(int j=0;j<word.length();j++){                String next = getWord(word,i,j);                if(Dict.contains(next)){                    nextList.add(next);                }            }        }        return nextList;    }    private static String getWord(String word, char i, int j) {        char[] array = word.toCharArray();        arraY[j]=i;        return new String(array);    }}

大佬总结

以上是大佬教程为你收集整理的单词梯问题全部内容,希望文章能够帮你解决单词梯问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。