我正在處理這個問題。這似乎是我找到了正確的答案,並返回true,但然後它被錯誤覆蓋..新手在Java中,對不起,如果它是一個虛擬的問題..我怎麼才能返回true? 預先感謝您leetcode 139. Word Break
問題 給定一個字符串s和單詞的字典dict,確定是否s時,可以分割成一個或多個字典單詞空格分隔的序列。
例如,給定 s =「leetcode」, dict = [「leet」,「code」]。
返回true,因爲「leetcode」可以分段爲「leet code」。
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是0
萊特curIndex是4
curIndex是4
代碼curIndex是8
1被稱爲..
2被稱爲..
2稱爲..
b爲假
@BrandonIbbotson您可以點擊剛纔的圖片,它會感謝被放大。 – success
@BrandonIbbotson我修正了它..謝謝你的建議。 – success