前言:
又是十天没有更新我的博客了,今天来整理一道string的题目,最近的强度和做题量都有所下降,真是美妙的寒假呀,来吧让我们看这道题目。
题目:点这里
代码:
cpp
class Solution {
public:
vector<int> findWordsContaining(vector<string>& words, char x) {
vector<int> ret;
for(int i=0;i<words.size();i++){
if(words[i].find(x)!=string::npos){
cout<<words[i].find(x)<<endl;
ret.push_back(i);
}
}
return ret;
}
};
这段代码就是利用for循环和if判断配合find关键字,判断数组中每一个字符串是否包含目标字符,若包含,将索引填充入ret数组中。
这里要讲的是这个语句:
cpp
if(words[i].find(x)!=string::npos)
这里就要讲到find关键字的返回值,类型是size_t,是一种无符号整数,永远大于等于0,当find找到目标字符的时候,就会返回对应的下标索引,但如果找不到目标字符呢,就会返回-1,但是这里返回的-1是无符号类型,所以是一个极大正数,所以这里如何判断有没有找到对应字符呢,就要利用这个语句。