输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')
输出一个整数,表示所有碎片的平均长度,四舍五入保留两位小数。 如样例所示: s = "aaabbaaac" 所有碎片的平均长度 = (3 + 2 + 3 + 1) / 4 = 2.25
aaabbaaac
2.25
#include <string> #include <iostream> #include <stdio.h> using namespace std; float getResult(const string& str) { int len = str.size(); int denominator = 1; for(int i = 1; i < len; ++i) { if(str[i] != str[i - 1]) { denominator++; } } float res = static_cast<float>(len) / denominator; return res; } int main() { string str; while(cin>>str) { auto res = getResult(str); printf("%.2f\n",res); } }
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
List<String> pieces = new ArrayList<>();
char[] c=s.toCharArray();
int Sum=0;
String param="",p="";
for(int i=0;i<s.length();i++){
param=String.valueOf(c[i]);
if(p==""){
p=param;
}else if (p.contains(param)){
p=p+param;
}else{
pieces.add(p);
p=param;
}
}
pieces.add(p);
for(String piece:pieces){
Sum=Sum+piece.length();
}
float res= ((float)(Sum*1.00)/pieces.size());
System.out.println(res);
}
}
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); char a = s.charAt(0); double avgLength = 0; double count = 1; for (int i = 1; i < s.length(); i++) { if (s.charAt(i) != a) { a = s.charAt(i); count++; } } avgLength = s.length() / count; System.out.println(String.format("%.2f", avgLength)); } }