Как получить пользовательский ввод для этой java-программы в основной функции?
Вопрос: Учитывая два слова (начало и конец) и словарь, Найдите длину кратчайшей последовательности преобразований от начала до конца, такую, чтобы одновременно можно было изменить только одну букву и каждое промежуточное слово должно существовать в словаре.
Как получить пользовательский ввод здесь, в основной функции?
Может ли кто-нибудь написать код для основной функции? Это будет очень полезно, и спасибо!
ВХОД
мат
шляпа
НДС
крыса
комплект
ВЫХОД
2
Что я уже пробовал:
<pre lang="java"> import java.io.*; import java.util.*; public class TestClass{ public int ladderLength(String beginWord, String endWord, Set<String> wordList) { Set<String> beginSet = new HashSet<String>(), endSet = new HashSet<String>(); int len = 1; int strLen = beginWord.length(); HashSet<String> visited = new HashSet<String>(); beginSet.add(beginWord); endSet.add(endWord); while (!beginSet.isEmpty() && !endSet.isEmpty()) { if (beginSet.size() > endSet.size()) { Set<String> set = beginSet; beginSet = endSet; endSet = set; } Set<String> temp = new HashSet<String>(); for (String word : beginSet) { char[] chs = word.toCharArray(); for (int i = 0; i < chs.length; i++) { for (char c = 'a'; c <= 'z'; c++) { char old = chs[i]; chs[i] = c; String target = String.valueOf(chs); if (endSet.contains(target)) { return len + 1; } if (!visited.contains(target) && wordList.contains(target)) { temp.add(target); visited.add(target); } chs[i] = old; } } } beginSet = temp; len++; } return 0; } }