Первый уникальный символ в строке с использованием LinkedHashMapJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Первый уникальный символ в строке с использованием LinkedHashMap

Сообщение Anonymous »

Дана строка, найдите в ней первый неповторяющийся символ и верните его индекс. Если он не существует, верните -1.
Примеры:

Код: Выделить всё

s = "leetcode"
return 0.

s = "loveleetcode"
return 2.
В моем решении я могу найти сам символ, но мне нужен индекс персонажа! Как мне изменить свой код, чтобы получить индекс с помощью LinkedHashMap? И заранее спасибо.

Код: Выделить всё

public static void firstNonRepeatingString(String str) {
LinkedHashMap lhm = new LinkedHashMap();
char[] charArray = str.toCharArray();
for (char character : charArray) {
if (lhm.get(character) == null) {
lhm.put(character, 1);
} else {
lhm.put(character, lhm.get(character) + 1);
}
}

for (Map.Entry entry : lhm.entrySet())
if (entry.getValue() == 1) {
System.out.print(entry.getKey());
break;
}
}

Код: Выделить всё

firstNonRepeatingString("aaabcccddeggf");
Это напечатает b, но я хочу напечатать 3.


Подробнее здесь: https://stackoverflow.com/questions/663 ... kedhashmap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»