您的位置:首页 > 编程语言 > Java开发

[Leetcode] Word Break (Java)

2014-02-16 16:12 363 查看
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.

For example, given

s =
"leetcode"
,

dict =
["leet", "code"]
.

Return true because
"leetcode"
can be segmented as
"leet
code"
.

判断能不能被dict中单词拆分

已经长过见识了,DFS应该会超时,直接试DP

public class Solution {
public boolean wordBreak(String s, Set<String> dict) {

boolean[] dp = new boolean[s.length()];

for(int i=0;i<s.length();i++){
if(dict.contains(s.subSequence(0, i+1)))
dp[i]=true;
}

for(int j=1;j<s.length();j++){
for(int k=0;k<j;k++){
if(dp[k]&&dict.contains(s.subSequence(k+1, j+1))){
dp[j]=true;
break;
}
}
}
return dp[s.length()-1];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: