139. Word Break
2017-09-11 09:54
253 查看
1.对于这个问题首先想到的是递归方法,关于遍历的问题,不一定非要通过字符串下标来遍历字符串,通过遍历字典中的字符串更简洁明了,但是一般来说递归总是会有超时问题,遇到这种问题尽量使用动态规划方法:
public boolean wordBreak(String s, List<String> wordDict) {
if(wordDict.size()==0){
return false;
}
if(str.length==0){
return true;
}
for(String str:wordDict){
if(s.equals(str)){
return true;
}
if(s.indexOf(str)==0){
if(wordBreak(s.substring(str.length()), wordDict)){
return true;
}
}
}
return false;
}
2.动态规划思想,动态规划的核心思想是建立数组,初始化,然后写出递推式,最后返回结果。就本题而言,我们定义状态数组:state[s.length()+1],state[i]代表:string[0,i-1] 可被字典中的单词分割。状态转移方程:state[i] = {state[j]&&string[i,j]在字典中,0=<j<i}。
public boolean wordBreak(String s, List<String> wordDict) {
if(wordDict.size()==0){
return false;
}
if(s.length()==0){
return true;
}
int[] state=new int[s.length()+1];
state[0]=1;
for(int i=1;i<s.length();i++){
for(int j=0;j<i;j++){
if(state[j]==1 && wordDict.contains(s.substring(j,i))){
state[i]=1;
}
}
}
return (state[s.length()]==1);
}
public boolean wordBreak(String s, List<String> wordDict) {
if(wordDict.size()==0){
return false;
}
if(str.length==0){
return true;
}
for(String str:wordDict){
if(s.equals(str)){
return true;
}
if(s.indexOf(str)==0){
if(wordBreak(s.substring(str.length()), wordDict)){
return true;
}
}
}
return false;
}
2.动态规划思想,动态规划的核心思想是建立数组,初始化,然后写出递推式,最后返回结果。就本题而言,我们定义状态数组:state[s.length()+1],state[i]代表:string[0,i-1] 可被字典中的单词分割。状态转移方程:state[i] = {state[j]&&string[i,j]在字典中,0=<j<i}。
public boolean wordBreak(String s, List<String> wordDict) {
if(wordDict.size()==0){
return false;
}
if(s.length()==0){
return true;
}
int[] state=new int[s.length()+1];
state[0]=1;
for(int i=1;i<s.length();i++){
for(int j=0;j<i;j++){
if(state[j]==1 && wordDict.contains(s.substring(j,i))){
state[i]=1;
}
}
}
return (state[s.length()]==1);
}
相关文章推荐
- LeetCode(139)Word Break
- Leetcode#139 Word Break
- leetcode 139 Word Break(阿里测试岗笔试题)
- leetcode-139-Word Break
- LeetCode 139 Word Break (DFS 分词 解存在性判断)
- Leetcode 139 Word Break
- Leetcode-139. Word Break
- LeetCode 139 Word Break
- leetcode 139. Word Break
- 139 Word Break
- LeetCode - 139/140 - Word Break
- (M)Dynamic Programming:139. Word Break
- 139. Word Break
- leetcode-139-Word Break
- leetcode 139. Word Break
- 139. Word Break
- 139. Word Break
- [leetcode 139] Word Break
- 【LeetCode】139 - Word Break
- [leetcode] 139 Word Break