File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed
Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -2,13 +2,17 @@ object Solution {
22 def wordBreak (s : String , wordDict : List [String ]): Boolean = {
33 val dp = Array .fill(s.length + 1 )(false ) // S(s, wordDict, word) = O(s.length)
44 dp(0 ) = true
5- for (i <- 1 to s.length) {
6- for (word <- wordDict) {
7- if (i >= word.length && dp(i - word.length) && s.substring(i - word.length, i) == word) {
8- dp(i) = true // T(s, wordDict, word) = O(s.length * wordDict.length * word.length)
5+ (0 to s.length - 1 ).exists { i =>
6+ if (! dp(i)) false
7+ else {
8+ for (word <- wordDict if ! dp(s.length)) {
9+ val j = i + word.length
10+ if (j <= s.length && ! dp(j) && s.substring(i, j) == word) {
11+ dp(j) = true // T(s, wordDict, word) = O(s.length * wordDict.length * word.length)
12+ }
913 }
14+ dp(s.length)
1015 }
1116 }
12- dp(s.length)
1317 }
1418}
You can’t perform that action at this time.
0 commit comments