class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
int n = s.size();
vector<bool> dp(n, false);
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(find(wordDict.begin(), wordDict.end(), s.substr(j, i-j+1))!=wordDict.end()){
if(j==0) dp[i]=true;
else if(dp[j-1]) dp[i]=true;
}
}
}
return dp[n-1];
}
};