解法一:API
利用API函数进行判断。
- 时间复杂度:O(nm)O(nm)O(nm), 其中n为word的长度,m为pref的长度
- 空间复杂度:O(1)O(1)O(1)
class Solution {
public int prefixCount(String[] words, String pref) {
int ans = 0;
for (String s : words) if (s.startsWith(pref)) ans++;
return ans;
}
}
class Solution {
public:
int prefixCount(vector<string>& words, string pref) {
int ans = 0;
for (string& s : words) ans += !s.find(pref); //find(pref) == 0代表以pref开始
return ans;
}
};
解法二:模拟
从前往后,逐一字符比较。
- 时间复杂度:O(nm)O(nm)O(nm)
- 空间复杂度:O(1)O(1)O(1)
class Solution {
public int prefixCount(String[] words, String pref) {
int ans = 0, m = pref.length(), i;
for (String s : words) {
for(i = 0; i < s.length() && i < m && s.charAt(i) == pref.charAt(i); i++);
if (i == m) ans++;
}
return ans;
}
}
class Solution {
public:
int prefixCount(vector<string>& words, string pref) {
int ans = 0, m = pref.length(), i;
for (string& s : words) {
for(i = 0; i < s.length() && i < m && s[i] == pref[i]; i++);
if (i == m) ans++;
}
return ans;
}
};