(網易2018校招筆試)[程式設計題] 字串碎片

Roninwz發表於2017-10-10

題目:

一個由小寫字母組成的字串可以看成一些同一字母的最大碎片組成的。例如,"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

程式碼:

  1. #include<iostream>  
  2. #include<string>  
  3. //#include<iomanip>  
  4. using namespace std;  
  5.   
  6. void components(string s,int n){  
  7.     int temp=1;  
  8.     for(int i=0;i<n-1;i++){  
  9.         if(s[i]!=s[i+1]){  
  10.             temp++;  
  11.         }  
  12.     }  
  13.     printf("%0.2f",(float)n/temp);  
  14.     //cout<<fixed<<setprecision(2)<<(float)n/temp;  
  15. }  
  16.   
  17. int main(){  
  18.     string res;  
  19.     cin>>res;  
  20.     components(res,res.size());  
  21.     return 0;  
  22. }  


分析:

覺得最難的部分是題目要求的四捨五入的保留兩位小數,對於這個確實平常很少用到,以上是兩種寫法

轉載來自:http://blog.csdn.net/gcola007/article/details/77923029

相關文章