First Unique Character in a String
https://leetcode.com/problems/first-unique-character-in-a-string/description/ | Easy |
Условие
Дана строка s, нужно найти индекс первого неповторяющегося символа. Если такого символа нет, вернуть -1.
Примеры
Input:
s = "leetcode”Output:
0Explanation:
Первый уникальный символ ‘l’ находится на индексе 0.
Input:
s = "loveleetcode”Output:
2
Input:
s = "aabb”Output:
-1
Решение
fun firstUniqChar(s: String): Int {
val charCount = IntArray(26) // Массив для подсчета количества каждой буквы
// Подсчитываем количество каждой буквы в строке
for (char in s) {
charCount[char - 'a']++
}
// Находим первый уникальный символ
for (i in s.indices) {
if (charCount[s[i] - 'a'] == 1) {
return i // Возвращаем индекс первого уникального символа
}
}
return -1 // Если уникальных символов нет
}
Временная сложность
O(n), где n — длина строки s, так как мы проходим по строке дважды (подсчет и поиск).
Пространственная сложность
O(1), так как используется фиксированный массив размера 26 для хранения количества букв.