2018网易校招试题3

一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,”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

这个题目非常简单,题目清晰的把思路写了出来,难点在于小数点要保留两位小数,这个题目中,如果最终结果输出的是一个double或者float类型,当碰到检测的结果为2.50, 3.50这些结果时,会输出2.5 , 3.5
最后的数字0不会输出,所以这个题的做法是,转换成字符串输出

import java.text.DecimalFormat;
import java.util.Scanner;
class function{
    void Function(String str){
        float n=1;
        for (int i = str.length() - 1; i > 0; i--) {  
             char c = str.charAt(i);  

               char d = str.charAt(i-1); 
                    if(c!=d)
                        n=n+1;

          }
        int m=str.length();
        double ft = m/n;
        DecimalFormat df = new DecimalFormat("#####0.00"); 
        String str1 = df.format(ft);  
        System.out.println(str1);

    }
}
public class ccc {
    public static void main(String[] args){
    function f= new function();
    Scanner scan = new Scanner(System.in);
    f.Function(scan.next());

}
}

你可能感兴趣的:(java)