题目 leetcode.cn/
- 给你一个字符串数组
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 <= 1001 <= words[i].length, pref.length <= 100words[i]和pref由小写英文字母组成
代码
function prefixCount(words: string[], pref: string): number {
let sum = 0;
let reg = new RegExp(`^${pref}`);
for(let i = 0; i < words.length; i++){
if(reg.test(words[i])){
sum++
}
}
return sum
};
- 正则校验:
- 定义一个统计结果变量和一个校验字符串是否以变量
pref字符串开头的正则 - 变量整个单词数组,对每一项都进行校验,如果校验通过,则统计结果
+1 - 直到数组中全部校验完毕,返回结果
- 定义一个统计结果变量和一个校验字符串是否以变量
function prefixCount(words: string[], pref: string): number {
let sum = 0;
for(let i = 0; i < words.length; i++){
if(words[i].substring(0, pref.length) === pref){
sum++
}
}
return sum
};
-
字符串截取比较:
- 定义一个统计结果的变量,然后遍历数组
- 对数组的每一项都截取一段字符串,长度为变量
pref的长度,判断截取的字符串是否等于变量pref - 如果相等,则统计变量
+1,直到遍历结束,返回结果
-
当然还有官方使用的
startWith方法,刚开始没想到,这里就不写了
结果
- 正则校验:
- 字符串截取比较: