【发布时间】:2016-10-17 01:46:22
【问题描述】:
我的 Q 类似于过去关于堆栈溢出的问题 http://www.geeksforgeeks.org/dynamic-programming-set-32-word-break-problem/
我写的解决方案,我无法理解,因为我不使用 DP,但我的 sol 如何解决重叠问题。我认为不是。有人可以澄清吗? 我使用的字典是 {"cat", "catdog", "dog", "mouse"} 和测试字符串为 "catdogmouse" 这是我写的方法
public static boolean recursiveWordBreak2(String s, int start) {
System.out.println("s is:"+s.substring(start));
if (s.isEmpty() || start >= s.length()) {
return true;
}
for (int i = start; i <= s.length(); i++) {
String str = s.substring(start, i);
System.out.println("substr:" + str);
if (dictSet.contains(str)) {
return recursiveWordBreak2(s, i);
}
}
return false;
}
【问题讨论】:
-
您如何得出“解决重叠问题”的结论?显示显示问题的跟踪输出。 Minimal, complete, verifiable example 适用于此。
标签: algorithm recursion dynamic-programming