题目描述:一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。
小技巧:每一种碎片长度加起来就是整个字符串的长度,所以没必要算出单独的长度...
每次变化的时候计一下数就行了.
题目要求的其实是保留两位小数,我顺带发现了好久不用的printf
看我为了整出两位小数的那一长串return就知道我有多蛋疼了,然而并没有成功.
因为在一次结果是3.50的时候这会自动变成3.5
还是格式化输出给力啊.
package wangyi_2018campus; import java.util.Scanner; /** * Created by Ramble on 2017/11/13. */ public class ChipsCounter { public static double chipsCounter(String target) { int count = 1; char[] ch = target.toCharArray(); for (int i=0; i<ch.length-1; i++) { if (ch[i]!=ch[i+1]) { count++; } } return (double)target.length()/cout; // return (double)((int)(((double)target.length()/count) * 100))/100; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String target = scanner.nextLine(); System.out.printf("%.2f",chipsCounter(target)); } }