描述
如果字符串的一个子串(其长度大于1)的各个字符均相同,则称之为等值子串。试设计一算法,输入字符串S,以“!”作为结束标志。如果串S中不存在等值子串,则输出信息“无等值子串”,否则求出(输出)一个长度最大的等值子串。
输入
输入字符串s
输出
找出其中长度最大的等值子串
输入样例 1
asdf123!
输出样例 1
无等值子串
#include<string.h>
#include<stdio.h>
int main(){
char s[100];
gets(s); //题目水没有校验“!”的结束标志,可自行加
int i;
int max=0,start = 0;
for(i=1;i<strlen(s);i++){
int len = 0;
if(s[i]==s[i-1]){
int a;
len++;
for(a=i;a<strlen(s);a++){
if(s[a]==s[a-1]){
len++;
}else{
break;
}
}
}
if(len>max){
max = len;
start = i-1;
}
}
if(max==0){
printf("无等值子串\n");
}else{
for(i=start;i<start+max;i++){
printf("%c",s[i]);
}
}
}