Update WordLadderTest.java & WordLadder.java (#3674)

This commit is contained in:
Taranjeet Singh Kalsi 2022-10-26 18:44:03 +05:30 committed by GitHub
parent 2e25f89c36
commit a0d03e814a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 24 deletions

View File

@ -34,22 +34,9 @@ import java.util.Queue;
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
*
@ -60,11 +47,7 @@ class WordLadder {
* @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
) {
public static int ladderLength(String beginWord, String endWord, List<String> wordList) {
HashSet<String> set = new HashSet();
for (String word : wordList) {
set.add(word);

View File

@ -1,7 +1,6 @@
package com.thealgorithms.strings;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.util.*;
@ -9,9 +8,31 @@ public class WordLadderTest {
@Test
public void testWordLadder() {
String words1[] = { "hot", "dot", "dog", "lot", "log", "cog" };
assertEquals(5, WordLadder.ladderLength("hit", "cog", Arrays.asList(words1)));
String words2[] = { "hot", "dot", "dog", "lot", "log" };
assertEquals(0, WordLadder.ladderLength("hit", "cog", Arrays.asList(words2)));
/**
* Test 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.
*/
List<String> wordList1 = Arrays.asList("hot", "dot", "dog", "lot", "log", "cog");
assertEquals(WordLadder.ladderLength("hit", "cog", wordList1), 5);
/**
* Test 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.
*/
List<String> wordList2 = Arrays.asList("hot", "dot", "dog", "lot", "log");
assertEquals(WordLadder.ladderLength("hit", "cog", wordList2), 0);
}
}