求字符串内最长不重复的子串长度是多少?
这里提供一种思路:设计四个变量,x1和y1分别用来存放当前检索到的最长子字符串的起始位置和长度,x2和y2分别用来存放当前检索到的字符串的起始位置和长度,然后还要建立一个循环,遍历所有的字符,每次遍历一个,若与当前检索的不冲突,就继续便利,若与当前检索的子串有字符冲突,就比较当前的检索子串与最长子串的长度大小,遍历整个字符串后,就可以找到最长子串的起始位置和长度了。
笔试题:最长对称子串:输入:仅一行,由不超过1000个小写字母组成的字符串 输出:最长对称子串的长度
对称子串就是逆序串和自己相等的串,比如abcba,yy。输入一个串,你需要找到一个在该串中连续出现的最长子串。比如abcdedcfg的最长对称子串是cdedc。输入:仅一行,由不超过1000个小写... 对称子串就是逆序串和自己相等的串,比如abcba,yy。输入一个串,你需要找到一个在该串中连续出现的最长子串。比如abcdedcfg的最长对称子串是cdedc。
输入:仅一行,由不超过1000个小写字母组成的字符串
输出:最长对称子串的长度
输入样例2
abcdedcfg
输出样例2
5 展开 #include "stdio.h"
int main(int argv,char *argc[]){
char s[1001]
求字符串内最长不重复的子串长度是多少?
这里提供一种思路:设计四个变量,x1和y1分别用来存放当前检索到的最长子字符串的起始位置和长度,x2和y2分别用来存放当前检索到的字符串的起始位置和长度,然后还要建立一个循环,遍历所有的字符,每次遍历一个,若与当前检索的不冲突,就继续便利,若与当前检索的子串有字符冲突,就比较当前的检索子串与最长子串的长度大小,遍历整个字符串后,就可以找到最长子串的起始位置和长度了。
哪位高手帮忙把这个程序给讲讲啊(求最长重复字串的)
#include <stdio.h>
#define MAXSTRLEN 255
typedef char SString[MAXSTRLEN+1];
void strlength(SString *s){
int m;
for(m=1;s[m]!='\0';m++);
*s[0]=m-1;
}
int maxstring(char *s){
char *ps,*p1;
int max,len;
max=0;len=1;
ps=p1=s;
while(*ps!='\0')
if(*ps==*(ps+1)){
len++;
ps++;
}
else{