(1)动态规划
class Solution { public: bool wordBreak(string s, vector<string>& wordDict) { int len=wordDict.size(); unordered_set<string> st; for(int i=0;i<len;i++) { st.insert(wordDict[i]); } vector<bool> v(s.size()+1,false); v[0]=true; for(int i=1;i<s.size()+1;i++) { for(int j=0;j<i;j++) { if(v[j]&&(st.find(s.substr(j,i-j))!=st.end())) { v[i]=true; break; } } } return v[s.size()]; } };