这个程序怎么写。。没思路。
输入一段字符串,统计其中出现最多的字符串。比如输入 aaabbbcccddd。那么出现最多的是a、b、c、d、aa、bb...等
木有思路。。
[解决办法]
你是用C写还是用C++呢?如果C的话就用字符串来表示,遇到没有的字符串就新建字符串来表示,并将其计数器置为1,如果遇到已经存在的字符串就往其计数器上++,。到最后在计数器中找最大的值。如果用C++的话可以用STL。
[解决办法]
你字符串出现最多 就是 你字符串里面的子串也出现的最多 最终也就是一个一个的字符出现的最多 你要是不改题目的话 直接遍历单个字符就能求解 如果是加上一个条件 统计其中出现最多的字符串并且此字符串最长 用LS的吧
[解决办法]
需要统计的子串有2^n - 1个
当然到后面有些也许不必统计
[解决办法]
我是个菜鸟,具体写出来可能会有很多错误,给个我自己的想法吧,可能会比较浪费时间!
首先确定字符串的长度N,然后从1开始,比如 abcabaac ,N=8,先设定字符串里只有1个字符,然后就有8个,分别是 a,b,c,a,b,a,a,c然后计算它们出现的次数,之后设字符串里又2个字符,分别是ab,bc,ca,ab,ba,aa,ac,然后设字符串有3个字符,以此类推......
以上是个人想法,不知道能不能行,希望帮到你~~
[解决办法]
写一个count_substr()函数, 用来统计一个字符串中子字符串的数量, 其原型或许类似如下:
int count_substr(char *goal, int len_g, char *s, int len_s); 举个例子, count_substr("ab", 2, "ababc", 4) 就等于2,
然后再写一个 结构体, 如下:
struct string { char *head; int length;}typedef string String;
[解决办法]
仅供参考#include <stdio.h>#include <string.h>char *a="abcde";int L,i,j,k;void main() { L=strlen(a); for (i=1;i<=L;i++) { for (j=0;j<=L-i;j++) { for (k=j;k<j+i;k++) { printf("%c",a[k]); } printf("\n"); } }}