Так что я пытаюсь решить проблему на Java ниже. Может ли кто-нибудь дать мне представление о том, как подойти к этому? Я могу думать только об использовании путаницы для циклов, чтобы разделить arr, пройти алфавит и пройти через каждую строку, и даже тогда меня путают строки и символы. Будем признательны любому совету.Java: присвойте значения алфавиту и определите значение строки
-
Пусть буква «А» стоит 1, «В» стоит 2, и так далее, с «Z» стоит 26. Значение слова является суммой всех письма значения в нем. Учитывая массив arr слов, состоящий из заглавных букв, верните значение часов с наибольшим значением. Можно предположить, что обры имеют длину по меньшей мере, 1.
{ "ААА", "В", "ССС"} => 9
{ "АААА", "В", "С"} => 4
{ "Z"} => 26
{ "", ""} => 0
-
Вот что я пытался до сих пор, но я потерян :
public static int largestValue(String[] arr){
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int largest = 0;
int wordTotal=0;
for (int i = 0; i < arr.length; i++){
String[] parts = arr[i].split("");
if (wordTotal < largest){ //I don't think this is in the right place
largest = 0; }
for (int j = 0; j < alphabet.length(); j++){
for(int k = 0; k <parts.length; k++){
if (alphabet.charAt(j) == parts[k].charAt(0)){
wordTotal = 0;
wordTotal += alphabet.indexOf(alphabet.charAt(j))+1;
}
}
}
}
return largest;
}
Какой код вы пробовали? –
При анализе требований вы должны определить, насколько они надежны. «Обещание» сопоставления, происходящего из букв капитала [basic Latin] (https://en.wikipedia.org/wiki/Basic_Latin_ (Unicode_block)) в порядке английского алфавита с целыми числами от 1 до 26, кажется довольно слабым , Итак, я думаю, что хорошо, что вы создаете свой собственный «алфавит», а не полагаетесь на их последовательность в кодировке набора символов. (Строка представляет собой подсчитанную последовательность юникодов UTF-16). –