没啥好说的
注意两个点,string的find是用来找子串的,也就是string,不是用来找char的,乖乖用substr截取一个字符串。
string的find找到的话返回的是第一个匹配的下标,找不到的话是这个字符串.npos这个东西,不是返回迭代器的
class Solution {
public:
int maxProduct(vector<string>& words) {
//普通的暴力做法
//直接string的find来找就完事了
int maxn = 0;
for(int i = 0; i < words.size(); ++i){
for(int j = i+1; j < words.size(); ++j){
//三重
bool flag = false;//如果是flase证明不重复
for(int k = 0; k < words[j].length(); ++k){
//不可以用k直接取,这是一个char,find是用来找子串的,就是找string类型的,要用substr截取
if(words[i].find(words[j].substr(k,1)) != words[i].npos){
flag = true;
break;
}
}
if(!flag){
int tmp = (words[i].length())*(words[j].length());
maxn = max(maxn,tmp);
}
}
}
return maxn;
}
};