一、问题描述
给你一个字符串数组 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"作为前缀的字符串。
考察
字符串的应用 建议用时10~25min
三、问题分析
这一题比较简单,我们可以利用C++ String类里面的查找方法解决这一题。
函数 | 用法 |
查找(查找成功返回元素位置,失败返回-1) | |
s.find('A') | 查找字符A |
s.find("ABC") | 查找字符串ABC |
s.find('A',2) | 从位置2开始查找字符A |
s.find("ABCD",1,2) | 从位置1开始,查找ABCD的前两个字符 |
s.rfind() | 从字符串尾部开始查找 |
如果满足words[i].find(pref)==0,那么不就代表字符串pref是words[i]的前缀吗?
四、编码实现
classSolution { public: intprefixCount(vector<string>&words, stringpref) { inti,ans=0,n=words.size();//初始化for(i=0;i<n;i++)//循环判断 { if(words[i].find(pref)==0)//判断是否为前缀 { ans++;//计数器++ } } returnans;//输出结果 } };