139. Word Break
Description
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words.
Note:
The same word in the dictionary may be reused multiple times in the segmentation.
You may assume the dictionary does not contain duplicate words.
Constraints
Approach
Links
GeeksforGeeks
YouTube
Examples
Input: s = "leetcode", wordDict = ["leet", "code"]
Output: true
Explanation: Return true because "leetcode" can be segmented as "leet code".
Solutions
/**
* Time complexity :
* Space complexity :
*/
class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
int sLen = s.length();
int[] pos = new int[sLen+1];
Arrays.fill(pos, -1);
pos[0] = 0;
for(int i = 0; i < sLen; i++) {
if(pos[i] != -1) {
for(int j = i+1; j <= sLen; j++) {
String str = s.substring(i, j);
if(wordDict.contains(str)) {
pos[j] = i;
}
}
}
}
return pos[sLen] != -1;
}
}
Follow up
Last updated
Was this helpful?