Ich muss eine Zeichenfolge als Eingabe akzeptieren, es in ein Array einzelner Wörter (aufgeteilt auf "") aufteilen und das Wort mit der höchsten Bewertung als Zeichenfolge zurückgeben. Jeder Buchstabe eines Wortes erhält Punkte entsprechend seiner Position im Alphabet: a = 1, b = 2, c = 3 usw. Wenn zwei Wörter gleich ausfallen, gebe ich das Wort zurück, das am frühesten in der ursprünglichen Zeichenfolge erscheint. Alle Buchstaben sind Kleinbuchstaben und alle Eingaben sind gültig.Java: Find String mit dem höchsten Wert
Zuerst entschied ich, dass, ob ich eine Zeichenfolge basierend auf seinem Gesamtwert wie oben angegeben, oder verwenden Sie einfach den ASCII-Wert, das Ergebnis wird das gleiche sein. Also wähle ich den ASCII-Wert, um die Dinge einfacher zu machen. Ich wandle jedes Wort in ein Zeichenfeld und die Schleife durch, um die Summe zu summieren. Dann lege ich das Wort und die Summe in eine Hashmap. Der nächste Teil, an dem ich festhalte. Wie durchlaufe ich die Hashmappe, um den größten Wert zu finden, und nimm dann das zugehörige Wort? Dies ist ein Kate von einer Code-Kata-Site. Ich bin frei, die Mittel zu benutzen, die ich wählen werde, um sie zu lösen. Also bin ich nicht mit der Hashmap-Idee verheiratet.
Vorschläge?
Hier ist mein Code so weit:
public static String high(String s) {
// Your code here...
HashMap<String, Integer> map = new HashMap<String, Integer>();
String[] words = s.split(" ");
// loop through all of the words, for each word get its value
// and insert the word into map as key, value as that keys value
for(int i = 0; i < words.length; i++) {
char[] tempWordChars = words[i].toCharArray();
int total = 0;
for(int j = 0; j < tempWordChars.length; j++) {
total = total + (int)tempWordChars[j];
}
map.put(tempWordChars.toString(), total);
}
return "";
}
Nein, ein Wort mit Schreiben Position Scoring ist nicht das gleiche, wie es von ascii Wert Scoring. Wenn Sie zum Beispiel nach der Buchstabenposition punkten, ist "xy" (49) höher als "abc" (6); Wenn Sie jedoch mit dem ASCII-Wert punkten, ist "abc" höher als "xy".Sie müssen klären, was Sie wirklich benötigen, bevor die Leute anfangen zu antworten. –