Имея список, который может содержать неопределенное число «A», «B», «C» или «D», я должен вычислить среднюю букву в списке.Эффективный способ получить среднюю строку в списке
Например, имея [A, C] в среднем составляет B.
Это мой подход:
public static String calculateAverage(final List<String> letters) {
int numberOfA = 0;
int numberOfB = 0;
int numberOfC = 0;
int numberOfD = 0;
for (String letter : letters) {
if (letter.equalsIgnoreCase("A")) {
numberOfA++;
}
if (letter.equalsIgnoreCase("B")) {
numberOfB++;
}
if (letter.equalsIgnoreCase("C")) {
numberOfC++;
}
numberOfD++;
}
int average =
(numberOfA * 1 + numberOfB * 2
+ numberOfC * 3 + numberOfD * 4)
/letters.size();
if (average>=1 && average<2) return "A";
if (average>=2 && average<3) return "B";
if (average>=3 && average<4) return "C";
return "D";
}
Есть ли более эффективный способ сделать это?
Что такое средняя буква? если список содержит '[A, C]' является ответом 'B' или undefined? – Ferrybig
Ответ: B. – anonymous
'[A, D]' также 'B', но это то, что вы хотите? – cozyconemotel