原题链接:Leetcode 2185. Counting Words With a Given Prefix
You are given an array of strings words and a string pref.
Return the number of strings in words that contain pref as a prefix.
A prefix of a string s is any leading contiguous substring of s.
Example 1:
Input: words = ["pay","attention","practice","attend"], pref = "at"
Output: 2
Explanation: The 2 strings that contain "at" as a prefix are: "attention" and "attend".
Example 2:
Input: words = ["leetcode","win","loops","success"], pref = "code"
Output: 0
Explanation: There are no strings that contain "code" as a prefix.
Constraints:
- 1 <= words.length <= 100
- 1 <= words[i].length, pref.length <= 100
- words[i] and pref consist of lowercase English letters.
方法一:模拟
思路:
数组中的每个字符串,查看是否是以pref开头即可
C++代码:
class Solution {
public:
int prefixCount(vector<string>& words, string pref) {
int ans = 0;
for(auto word : words){
bool flag = true;
for(int i = 0; i < pref.size(); i++ ){
if(word[i] != pref[i]){
flag = false;
break;
}
}
if(flag) ans++;
}
// 也可以直接改成这个
// for(auto& w : words) ans += w.find(pref) == 0;
return ans;
}
};
复杂度分析:
- 时间复杂度:O(nm),其中n为数组中元素个数,
- 空间复杂度:O(1)