字符串
题目描述
一个只含小写英文字母的字符串s,其字符依次为 a1,a2,…,an。 求一个字符串t,长度与s相同,其第i位的字符为s的第1∼i位出现字符数量最多的字符,如果多个字符的数量相同,则取最早达到这个数量的的字符。 比如s=“abba“,则t=“aabb“。第2位时,a和b都是1次,a先达到1,所以第2位是a;第4位时,a和b都是2次,b先达到2次,所以是b。
输入格式
存在多个样例。 每行一个字符串s,长度不超过1000。
输出格式
依次每行输出一个样例的结果
样例输入
abba abcd
样例输出
aabb aaaa
#include<stdio.h>
#include<string.h>
int main()
{
char s[1001];
while(scanf("%s",&s)!=EOF)
{
int len=strlen(s);
int max=0,mx,i,j;
for(i=0;i<len;i++)//打出所需要的数组
{
int a[27]={0};
for(j=0;j<=i;j++)//统计出现出现次数最多的数,如果大于它就刷新
{
a[s[j]-96]++;
if(max<a[s[j]-96])
{
max=a[s[j]-96];
mx=s[j];
}
}
printf("%c",mx);
}
printf("\n");
}
}