s = "lintcode"
dict = ["lint","code"]
返回 true 因為
"lintcode"
可以被空格切分成
"lint code"
首先定義 dp[i] : 到字串s的第i個位置都可以匹配。
子問題為: dp[i] = dp[i-len] + 。
即如果前i-len可以正確匹配,後面i-len+1到i的字串又在字典dict中,則前i個字元也可以正確匹配。
但是這邊有乙個注意點,就是我們有必要 每次從 0 位置開始遍歷嗎,不需要,我們只需要求出字典dict中最長的那個
字串的長度就可以了。
**
public static boolean wordbreak(string s, setdict)
int maxlen = 0;
for(string word:dict)
}boolean dp = new boolean[s.length()+1];
dp[0] = true;
for (int i = 1; i <= s.length(); i++) }}
return dp[s.length()];
}
三次過 Lintcode 107 單詞拆分 I
給定字串 s 和單詞字典 dict,確定 s 是否可以分成乙個或多個以空格分隔的子串,並且這些子串都在字典中存在。樣例 1 輸入 lintcode lint code 輸出 true 樣例 2 輸入 a a 輸出 true 首先我們要儲存的歷史資訊res i 是表示到字串s的第i個元素為止能不能用字...
LintCode 單詞切分
給出乙個字串s和乙個詞典,判斷字串s是否可以被空格切分成乙個或多個出現在字典中的單詞。給出s lintcode dict lint code 返回 true 因為 lintcode 可以被空格切分成 lint code 動態規劃。第一種 dp i 表示前i個字元能否被切分。前i個字元能否被切分依賴於...
單詞搜尋 LintCode
給出乙個二維的字母板和乙個單詞,尋找字母板網格中是否存在這個單詞。單詞可以由按順序的相鄰單元的字母組成,其中相鄰單元指的是水平或者垂直方向相鄰。每個單元中的字母最多只能使用一次。樣例 給出board abce sfcs adee word abcced 返回 true,word see 返回 tru...