私はこの質問に取り組んでいます。私は正解を見つけて真実を返すように思えますが、それは偽で上書きされます。Javaの初心者、ダミーの質問であれば申し訳ありません。 は事前に文字列sと単語辞書の辞書、sが1のスペース区切りのシーケンスまたは複数の辞書の単語に分割することが可能かどうかを判断考えるleetcode 139.単語区切り
質問 、ありがとうございました。
たとえば、 s = "leetcode"、 dict = ["leet"、 "code"]と指定します。
「リートコード」は「リートコード」としてセグメント化することができるため、trueを返します。
import java.util.HashSet;
import java.util.Set;
public class Hi {
public static void main(String[] args) {
String str = "leetcode";
Set<String> set = new HashSet<String>();
set.add("leet");
set.add("code");
boolean b = wordBreak(str, set);
System.out.println("b is " + b);
}
public static boolean wordBreak(String s, Set<String> wordDict) {
if(s.length() == 0 || wordDict.isEmpty()) {
return false;
}
return helper(s, wordDict, 0);
}
public static boolean helper(String s, Set<String> wordDict, int index) {
if(index == s.length()) {
System.out.println("1 is called.. ");
return true;
}
int curIndex = index;
System.out.println("curIndex is " + curIndex);
while(index < s.length()) {
//System.out.println("s.length() is " + s.length());
curIndex++;
if(curIndex > s.length()) {
System.out.println("2 is called.. ");
//return false;
return false;
}
if(wordDict.contains(s.substring(index, curIndex))) {
System.out.println(s.substring(index, curIndex) + " curIndex is " + curIndex);
helper(s, wordDict, curIndex);
}
}
System.out.println("3 is called.. ");
return false;
}
出力: curIndexはcurIndex 4
curIndex 4
コードcurIndexが
.. 81と呼ばれているある0
すご腕あります
と呼ばれる2 ..
2と呼ばれます。..
bが偽である
あなただけの絵をクリックすることができますし、それは。おかげでズームされます@BrandonIbbotson。 – success
@BrandonIbbotson私はそれを修正しました。アドバイスをいただきありがとうございます。 – success