程序分析
计算字符串中子串出现的次数,一种直观的方法是遍历整个字符串,在每个位置检查子串是否匹配。另一种方法是利用字符串匹配算法来优化搜索过程,减少时间复杂度。
方法一:暴力法
解题思路:
- 在主串中依次遍历每个位置,以该位置为起点,检查是否存在与子串相同的子串。
- 比较简单直观,但时间复杂度较高。
实现代码:
#include <stdio.h>
#include <string.h>
int countSubstring(char *str, char *sub) {
int count = 0;
int len_str = strlen(str);
int len_sub = strlen(sub);
for (int i = 0; i <= len_str - len_sub; i++) {
int j;
for (j = 0; j < len_sub; j++) {
if (str[i + j]