Problem:
Finden Sie das erste Zeichen, das nur einmal in einer Zeichenfolge vorkommt (0<=Stringlänge<=10000, alles aus Buchstaben zusammengesetzt) und geben Sie es zurück seine Position, wenn nicht, gibt -1 zurück (Groß-/Kleinschreibung muss beachtet werden)
Empfohlene verwandte Video-Tutorials: Java-Online-Tutorials
Lösungsideen:
Die Anforderung an die Frage ist sehr klar: Suchen Sie nach dem Zählen einfach nach dem Zeichen mit der Anzahl 1, indem Sie die Zeichenfolge durchlaufen und zählen. Offensichtlich erfordert dies die Verwendung einer Hashmap. Der Schlüssel ist jedes Zeichen in der Zeichenfolge und der Wert ist die Häufigkeit, mit der dieses Zeichen in der Zeichenfolge vorkommt.
Der Code lautet wie folgt:
import java.util.LinkedHashMap; public class Solution { public int FirstNotRepeatingChar(String str) { int len = str.length(); LinkedHashMap<Character, Integer> map = new LinkedHashMap<>(); for (int i = 0; i < len; i++) { char c = str.charAt(i); Integer val = map.get(c); map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue); } Character resultKey = null; for (Character c : map.keySet()){ if (map.get(c) == 1){ resultKey = c; break; } } for (int i = 0 ;i < len; i++){ if (str.charAt(i) == resultKey){ return i; } } return -1; } }
Empfohlene verwandte Artikel und Tutorials: Java Quick Start
Das obige ist der detaillierte Inhalt vonJava implementiert die Suche nach dem ersten Zeichen, das nur einmal vorkommt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!