一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。
输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')
输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。 如样例所示: s = "aaabbaaac" 所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25
aaabbaaac
2.25
let s=readline(); const arr=s.split(""); let length=1; const result=[]; let sum=0,r; for(let i=0;i<arr.length-1;i++){ if(arr.length!=0&&arr[i]==arr[i+1]){ length++; }else{ result.push(length); length=1; } } result.push(length); result.forEach(item=>{ sum=sum+item; }); r = (sum/result.length).toFixed(2);//保留两位小数四舍五入 console.log(r);
var str = readline(); var len = str.length; function helper(str, len) { if(len === 0) return 0; let res = 0, num = 0; let i = 0, j = 1; while(j < len) { if(str[j] === str[i]) { j+=1; } else { res += (j-i); num += 1; i = j; j = i+1; } } res += (j-i); num+=1; return (res/num).toFixed(2); } print(helper(str, len));
function len(line){if(line.length<=0){return0;}var s=line.split("");var a='';var temp=[];var num=0;for(var i=0;i<s.length;i++){if(s[i]==s[i+1]){a+=s[i];}else{a+=s[i];temp.push(a);a='';continue;}}for(var j=0;j<temp.length;j++){num+=temp[j].length;}return(num/temp.length).toFixed(2);}while(line=readline()){print(len(line));}