题解 | #统计字符串中子串出现的次数#
统计字符串中子串出现的次数
https://www.nowcoder.com/practice/9eb684f845a446f3b121472de2ea75cd
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100] = { 0 };
char substr[100] = { 0 };
cin.getline(str, sizeof(str));
cin.getline(substr, sizeof(substr));
int count = 0;
// write your code here......
// 双指针法
char* p = str;
char* q = substr;
while(*p != '\0')
{
if(*p == *q)
{
//判断两个字符串同时结束的情况
if(*(p + 1) == '\0' && *(q + 1) == '\0') count++;
p++;
q++;
}
if(*p != *q)
{
if(*q == '\0')
{
count++;
p -= q - substr - 1; //p也回溯,解决重叠问题
}
else p++;
q = substr;
}
}
cout << count << endl;
return 0;
}
上海得物信息集团有限公司公司福利 1164人发布