求最长一个串中的最长相同子串
来源:互联网 发布:js课程设计 编辑:程序博客网 时间:2024/04/27 18:40
假设有一个串 abcd 那么它的子串为ab abc abcd
现输入一串带有相同子串的串,(例:abciiiabc),请求出他的最长子串(abc)
样例输入: abciopuabcuiu
abciabcoabccjiabcc
样例输出:3
4
/* Note:Your choice is C IDE */#include "stdio.h"#include "string.h"/*1.先从中间向下切入,用串的总长度除以2,可以保证左边是最长,不管是偶数串还是奇数串。2.然后以切入的那个数n,求 0~n-1 这一串的匹配,如果一旦匹配上,必定就是最长子串了。*/void main(){ char a[100];int i,j,k,l,len,temp,flag;gets(a);len = strlen(a);for(i=len/2;i>=0;i--)//因为是周期串,所以不可能存在子串重叠的情况,从中间切入,可以保证左边是最长{for(k=i;k+(i-1)<len;k++){flag=1;for(j=k;j<k+i;j++){//重点,j每次要向前挪k-i个长度的位置if(a[j]!=a[(j-(k-i))%i]){flag=0;break;}}if(flag==1){printf("%d",i);break;}}if(flag==1){break;}}}
博主扣扣 1139178694 欢迎探讨
阅读全文
0 0
- 求最长一个串中的最长相同子串
- 求两个串中的一个最长子串
- 求一个字符串中的最长连续子串
- 求给定两字符串的最长相同子串
- 求字符串中的最长回文子串
- 求一串字符串中的最长子串
- 求字符串中的“最长重复子串”
- 求一个数列(数列中的每个数不相同)的最长不下降子序列。
- 找出一个字符串中最长连续相同子串
- 求最长回文子串
- 求最长子串[C++]
- 求最长公共子串
- 求最长重复子串
- 求最长回文子串
- 求最长公共子串
- 求最长公共子串
- 求最长公共子串
- 求最长回文子串
- java中一个字符串的大小写转换
- 【初学Linux】Web开发环境搭建——JDK的安装
- Docker-compose配置文件详解
- NYOJ289苹果背包系列
- 通过response生成验证码 java验证码
- 求最长一个串中的最长相同子串
- cloudera-manager内存阈值问题
- windows使用openoffice一些错误记录及解决方法
- 标题文章测试
- python引入
- c中malloc申请堆空间使用及案例
- MySQL主写从读
- php 从字符串中获取图片以及文字的正则表达式
- CCS6.0以上版本的HEX文件生成,在C2Prog和IAP在线编程中都能成功