首页 > 试题广场 >

字符串碎片

[编程题]字符串碎片
  • 热度指数:73 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。
给定一个字符串,请计算这个字符串的所有碎片的平均长度是多少。

输入描述:
输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')


输出描述:
输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。
示例1

输入

aaabbaaac

输出

2.25

说明

所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25
#include<stdio.h>
#include<string.h>
#define MAXNUM 100

void main(){
char s[MAXNUM]={0};
int arr[MAXNUM]={0};  //计数数组
printf("Please input the array:");
gets(s);
int length=strlen(s);
printf("Length:%d\n",length);
if(length>50||length<1)
{
    printf("Error");
    return;
}
int i=0,j=0;  //j记录碎片个数
char ch=s[0];
for(i=0;i<length;i++)
{
    if(ch==s[i])
        ;
    else
    {
        j++;
        ch=s[i];
        i--;
    }
}
j++;
printf("%.2f",1.0*length/j);
return;
}

发表于 2021-01-23 10:28:16 回复(0)