开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
Java
/
Strings
/
WordLadder.java
Java
/
Strings
/
WordLadder.java
WordLadder.java 3.57 KB
一键复制 编辑 原始数据 按行查看 历史
Aitor Fidalgo Sánchez 提交于 2021年10月16日 21:43 +08:00 . Fix package declarations (#2576)
package Strings;
import java.util.List;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.HashSet;
/*
**Problem Statement:**
A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that:
Every adjacent pair of words differs by a single letter.
Every si for 1 <= i <= k is in wordList. Note that beginWord does not need to be in wordList.
sk == endWord
Given two words, beginWord and endWord, and a dictionary wordList, return the number of words in the shortest transformation sequence from beginWord to endWord, or 0 if no such sequence exists.
**Example 1:**
Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]
Output: 5
Explanation: One shortest transformation sequence is "hit" -> "hot" -> "dot" -> "dog" -> cog", which is 5 words long.
**Example 2:**
Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"]
Output: 0
Explanation: The endWord "cog" is not in wordList, therefore there is no valid transformation sequence.
**Constraints:**
1 <= beginWord.length <= 10
endWord.length == beginWord.length
1 <= wordList.length <= 5000
wordList[i].length == beginWord.length
beginWord, endWord, and wordList[i] consist of lowercase English letters.
beginWord != endWord
All the words in wordList are unique.
*/
class WordLadder {
/** Driver Code */
public static void main(String []args){
String beginWord = "hit";
String endWord = "cog";
String words[] = {"hot","dot","dog","lot","log","cog"};
List<String> wordList = Arrays.asList(words);
System.out.println("Ladder Length: " + ladderLength(beginWord,endWord,wordList));
}
/**
* This function finds the ladderLength
* @param beginWord: Starting word of the ladder
* @param endWord: Ending word of the ladder
* @param wordList: This list contains the words which needs to be included in ladder.
* @return ladderLength: This function will return the ladderLength(level) if the endword is there.
* Otherwise, will return the length as 0.
*/
public static int ladderLength(String beginWord, String endWord, List<String> wordList) {
HashSet<String> set = new HashSet();
for(String word : wordList){
set.add(word);
}
if(!set.contains(endWord)) return 0;
Queue<String> queue = new LinkedList();
queue.offer(beginWord);
int level = 1;
while(!queue.isEmpty()){
int size = queue.size();
for(int i = 0; i < size; i++){
String curr = queue.poll();
char[] words_chars = curr.toCharArray();
for(int j = 0; j < words_chars.length; j++){
char original_chars = words_chars[j];
for(char c = 'a'; c <= 'z'; c++){
if(words_chars[j] == c) continue;
words_chars[j] = c;
String new_word = String.valueOf(words_chars);
if(new_word.equals(endWord)) return level+1;
if(set.contains(new_word)){
set.remove(new_word);
queue.offer(new_word);
}
}
words_chars[j] = original_chars;
}
}
level++;
}
return 0;
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

All Algorithms implemented in Java
取消

发行版

暂无发行版

贡献者

全部

语言

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/syysui/Java.git
git@gitee.com:syysui/Java.git
syysui
Java
Java
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /