作者:三毛 | 来源:互联网 | 2023-08-14 10:31
最近力扣好像经常鸽,感觉得找点时间补一补了,毕竟算法现在学的还是太辣鸡了。 给你一个字符串数组words和一个字符串pref。返回words中以pref作为前缀的字符串的数目。字符
最近力扣好像经常鸽,感觉得找点时间补一补了, 毕竟算法现在学的还是太辣鸡了。
给你一个字符串数组 words 和一个字符串 pref 。
返回 words 中以 pref 作为 前缀 的字符串的数目。
字符串 s 的 前缀 就是 s 的任一前导连续字符串。
示例 1:
输入:words = ["pay","attention","practice","attend"], pref = "at"
输出:2
解释:以 "at" 作为前缀的字符串有两个,分别是:"attention" 和 "attend" 。
示例 2:
输入:words = ["leetcode","win","loops","success"], pref = "code"
输出:0
解释:不存在以 "code" 作为前缀的字符串。
提示:
1 <= words.length <= 100
1 <= words[i].length, pref.length <= 100
words[i] 和 pref 由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/counting-words-with-a-given-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
这次的没啥好说的,当words中的某个字符串长度小于pref的长度时,可以直接判断不符合要求,根据这点可以进行剪枝,对暴力解法进行一定的优化。
代码如下:
class Solution {
public int prefixCount(String[] words, String pref) {
int res = 0;
int len = pref.length();
for (String s : words) {
if (s.length() >= len) {
if (s.substring(0, len).equals(pref)) {
res ++;
}
}
}
return res;
}
}
运行结果如下:
![](https://img2.php1.cn/3cdc5/388e/243/6930ee47dc436a0d.png)