最近力扣好像经常鸽,感觉得找点时间补一补了, 毕竟算法现在学的还是太辣鸡了。
给你一个字符串数组 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; } }
运行结果如下:
标签:力扣,前缀,pref,---,2023.1,words,字符串,String From: https://www.cnblogs.com/allWu/p/17034298.html