1 条题解
-
0
思路分析
1. 任务拆解: 统计子串s1在字符串s2中出现的次数。
2. 关键点分析:
- 使用字符串的
find函数来查找子串位置 - 需要重复查找,每次找到后从新位置继续查找
- 统计找到的次数
3. 步骤规划:
- 第一步: 读取子串s1和字符串s2。
- 第二步: 设置计数器s=0,起始查找位置q=0。
- 第三步: 使用循环重复查找:
- 从当前位置q开始在s2中查找s1
- 如果找到,计数器加1,并更新查找位置为找到位置+s1的长度
- 如果找不到,退出循环
- 第四步: 输出统计的次数。
4. 代码对应:
cin>>a;读取子串s1cin>>b;读取字符串s2int q=0, s=0;初始化查找位置和计数器while(1)无限循环,直到找不到为止if(b.find(a,q)!=-1)检查是否找到子串s++;找到则计数器加1q=b.find(a,q)+a.size();更新查找位置(跳过已找到的子串)else break;找不到则退出循环cout<<s;输出总次数
简单理解: 就像在长文章中数某个词出现了多少次,找到一个就计数一次,然后从这个词后面继续找,直到再也找不到为止。
- 使用字符串的
信息
- ID
- 542
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 454
- 已通过
- 204
- 上传者