以下是引用czz5242199在2012-12-23 00:47:33的发言:
你的算法漏洞很多,比如算下这个
adas
adbbas
你的算法漏洞很多,比如算下这个
adas
adbbas
我的第一个算法不是算as这个词出现的次数,是算a,d,a,s这样的次序出现的次数
如adas
adbbas 出现一次
如as
adsads 出现两次
小小战士,战士中的战斗机!
#include <stdio.h> #include <string.h> int fun(char *a, char *b) { char *p = a; int i = 0; while(p = strstr(p, b)) { ++i; if (!++p) break; } return i; } int main() { char *a = "asdfdfghfghdfdfdfjhjk"; char *b = "dfdf"; printf("%d\n", fun(a, b)); return 0; }
#include <stdio.h> #include <string.h> int Judge(char a, char b) { if ('a' <= a && a <= 'z') a -= 'a' - 'A'; if ('a' <= b && b <= 'z') b -= 'a' - 'A'; return (a == b); } char *Strstr(char *a, char *b) { char *p; int i; for (p = a;*p;++p) { for (i = 0;b[i];++i) { if (*(p + i) == '\0') break; if (!Judge(*(p + i), b[i])) break; } if (!b[i]) return p; } return p; } int fun(char *a, char *b) { char *p = a; int i = 0; while(*(p = Strstr(p, b)) != '\0') { ++i; ++p; } return i; } int main() { char *a = "asadsfsrerAs"; char *b = "as"; printf("%d\n", fun(a, b)); return 0; }