1. 程式人生 > >網易2018[程式設計題] 字串碎片

網易2018[程式設計題] 字串碎片

時間限制:1秒

空間限制:32768K

一個由小寫字母組成的字串可以看成一些同一字母的最大碎片組成的。例如,"aaabbaaac"是由下面碎片組成的:'aaa','bb','c'。牛牛現在給定一個字串,請你幫助計算這個字串的所有碎片的平均長度是多少。

輸入描述:
輸入包括一個字串s,字串s的長度length(1 ≤ length ≤ 50),s只含小寫字母('a'-'z')


輸出描述:
輸出一個整數,表示所有碎片的平均長度,四捨五入保留兩位小數。

如樣例所示: s = "aaabbaaac"
所有碎片的平均長度 = (3 + 2 + 3 + 1) / 4 = 2.25

輸入例子1:
aaabbaaac

輸出例子1:

2.25

#include <cstdio>
#include <cstring>
const int maxn=52;
char s[maxn];

int main(){
    while(scanf("%s",s)==1){
        int n=strlen(s);
        int a[30]={0},num=0;
        for(int i=0;i<n;i++){
            if(s[i+1]!=s[i]){
                a[num]++;
                num++;
            }
            else if(s[i+1]==s[i]){
                a[num]++;
            }
        }
        a[num]++;
        int sum=0;
        for(int i=0;i<num;i++) sum+=a[i];
        printf("%.2f\n",(double)sum/num);
    }
    return 0;
}