Сложность: easy
Дана строка s, найдите первый неповторяющийся символ в ней и верните его индекс. Если такого символа не существует, верните -1.
Пример:
Input: s = "leetcode"
Output: 0
👨💻 Алгоритм:
1⃣Постройте хеш-таблицу, где ключами являются символы строки, а значениями — количество их появлений. Для этого пройдите по строке и для каждого символа увеличивайте его счетчик в хеш-таблице.
2⃣Пройдите по строке снова и проверьте для каждого символа, является ли его количество появлений в хеш-таблице равным 1.
3⃣Если найдется символ с количеством появлений, равным 1, верните его индекс. Если такой символ не найден, верните -1.
😎 Решение:
class Solution {
private var original: [Int]
private var array: [Int]
init(_ nums: [Int]) {
self.original = nums
self.array = nums
}
func reset() -> [Int] {
self.array = self.original
return self.original
}
func shuffle() -> [Int] {
let n = array.count
for i in 0..<n {
let randIndex = Int.random(in: i..<n)
array.swapAt(i, randIndex)
}
return array
}
}Ставь 👍 и забирай 📚 Базу знаний