File tree 1 file changed +11
-11
lines changed
solution/0100-0199/0139.Word Break
1 file changed +11
-11
lines changed Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public boolean wordBreak (String s , List <String > wordDict ) {
3
- int wordMaxLen = Integer .MIN_VALUE ;
4
- for (String word : wordDict ){
5
- wordMaxLen = Math .max (wordMaxLen , word .length ());
3
+ if (s == null || s .length () == 0 ) {
4
+ return false ;
6
5
}
7
- Set <String > wordSet = new HashSet <>(wordDict );
8
- int len = s .length ();
9
- boolean [] dp = new boolean [len + 1 ];
6
+ Set <String > words = new HashSet <>(wordDict );
7
+ boolean [] dp = new boolean [s .length () + 1 ];
10
8
dp [0 ] = true ;
11
- for (int i = 1 ; i <= len ; i ++){
12
- for (int l = 1 ; l <= wordMaxLen && i - l >= 0 ; l ++){
13
- if (dp [i -l ] && wordSet .contains (s .substring (i -l , i ))){
14
- dp [i ] = true ;
9
+
10
+ for (int i = 1 ; i <= s .length (); i ++) {
11
+ for (int j = i - 1 ; j > -1 ; j --) {
12
+ dp [i ] = dp [j ] && words .contains (s .substring (j , i ));
13
+ if (dp [i ]) {
15
14
break ;
16
15
}
17
16
}
18
17
}
19
- return dp [len ];
18
+
19
+ return dp [s .length ()];
20
20
}
21
21
}
You can’t perform that action at this time.
0 commit comments