diff --git a/Java/word-ladder.java b/Java/word-ladder.java new file mode 100644 index 00000000..ac66c80c --- /dev/null +++ b/Java/word-ladder.java @@ -0,0 +1,57 @@ +/* +Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord, such that: + +Only one letter can be changed at a time. +Each transformed word must exist in the word list. +Note: + +Return 0 if there is no such transformation sequence. +All words have the same length. +All words contain only lowercase alphabetic characters. +You may assume no duplicates in the word list. +You may assume beginWord and endWord are non-empty and are not the same. + +Problem Link: https://leetcode.com/problems/word-ladder/ +It is a popular interview program which is based on BFS +*/ +import java.util.*; +class Solution { + public int ladderLength(String beginWord, String endWord, List wordList) { + HashSet hs=new HashSet<>(wordList); + if(!hs.contains(endWord)) + { + return 0; + } + int steps=1; + Queue q=new LinkedList<>(); + q.add(beginWord); + while(!q.isEmpty()) + { + int count=q.size(); + for(int i=0;i [Sample PR](https://github.com/codedecks-in/LeetCode-Solutions/pu | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------- | ----------------- | ---------- | --- | ---- | | 1284 | [Minimum Number of Flips to Convert Binary Matrix to Zero Matrix](https://leetcode.com/problems/minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix/) | [C++](./C++/Minimum-Number-of-Flips-to-Convert-Binary-Matrix-to-Zero-Matrix.cpp) | _O(m * n * 2 ^ (m \* n))_ | _O(2 ^ (m \* n))_ | Hard | BFS | | | 200 | [Number of Islands](https://leetcode.com/problems/number-of-islands/) | [Java](./Java/NumberOfIslands.java) | O(R \* C) | O(R \* C) | Medium | BFS | +| 200 | [Word Ladder](https://leetcode.com/problems/word-ladder/) | [Java](./Java/word-ladder.java) | O(N^2 \* M) | O(N \* M) | Medium | BFS |