c语言,大神给一下思路,大一刚学,浅显易懂些给定一个长度为n(n<=100)的字符串s,还有一个数字L,穷举长度大于等
于L的出现次数最多的子串(子串可以相交),如果有多个,输出最长的,
如果仍然有多个,输出最先找到的子串。(不可以使用全局变量)
输入格式:
第一行是字符串S。
第二行一个数字L。(L大于0,且不超过S的长度。)
输出格式
题目要求的一行字符串。
输入样例1:输入样例2:
bbaabbaaaaabbaabbaaaaa
42
输出样例1:输出样例2:
bbaaaa
c语言,大神给一下思路,大一刚学,浅显易懂些
答案:2 悬赏:40 手机版
解决时间 2021-03-14 05:50
- 提问者网友:回忆在搜索
- 2021-03-13 19:27
最佳答案
- 五星知识达人网友:荒野風
- 2021-03-13 20:27
解决方案:
字符串s与长度可以由标准IO输入:
scanf可以获取到
判断输入是否合法:
strlen
计算s的长度,跟l比较l必须小于等于s的长度,s的长度必须小于等于100
按照>=L的长度截取子串,偏移量是一个字符,直到子串长度小于L的长度,退出循环。
此处:
1、设计一个结构体保存你攫取的子串跟,出现数量。
定义:
struct node {
//子串,动态分配存储保存
char *substr;
//子串出现的次数
int count;
//指向链表的下一个节点
struct node *next;
};
2、设计一个链表方便查找查找,节点就是第一步设计得结构体,添加,修改找到的子串信息。设计链表的添加、修改、遍历、打印、查找功能函数。
截取到的子串先在链表中查找,如果存在,则链表节点的count成员+1,不存在就新建一个。
这个题,对新生,稍微有点难,但锻炼意义不错。
可能会用到的一些函数:
scanf,获取用户输入
malloc,动态分配存储
strcmp,字符串比较
strcpy,或strncpy字符串拷贝
memset,清空分配的存储空间
sizeof,计算字符串占用的存储空间大小
printf,标准输出上打印信息
使用到的头文件:
stdlib.h
stdio.h
string.h
字符串s与长度可以由标准IO输入:
scanf可以获取到
判断输入是否合法:
strlen
计算s的长度,跟l比较l必须小于等于s的长度,s的长度必须小于等于100
按照>=L的长度截取子串,偏移量是一个字符,直到子串长度小于L的长度,退出循环。
此处:
1、设计一个结构体保存你攫取的子串跟,出现数量。
定义:
struct node {
//子串,动态分配存储保存
char *substr;
//子串出现的次数
int count;
//指向链表的下一个节点
struct node *next;
};
2、设计一个链表方便查找查找,节点就是第一步设计得结构体,添加,修改找到的子串信息。设计链表的添加、修改、遍历、打印、查找功能函数。
截取到的子串先在链表中查找,如果存在,则链表节点的count成员+1,不存在就新建一个。
这个题,对新生,稍微有点难,但锻炼意义不错。
可能会用到的一些函数:
scanf,获取用户输入
malloc,动态分配存储
strcmp,字符串比较
strcpy,或strncpy字符串拷贝
memset,清空分配的存储空间
sizeof,计算字符串占用的存储空间大小
printf,标准输出上打印信息
使用到的头文件:
stdlib.h
stdio.h
string.h
全部回答
- 1楼网友:深街酒徒
- 2021-03-13 21:43
没看懂什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯