Сложность: easy
Дана строка s, переверните только все гласные в строке и верните её.
Гласные: 'a', 'e', 'i', 'o', 'u', а также их верхние регистры.
Пример:
Input: s = "hello"
Output: "holle"
👨💻 Алгоритм:
1⃣Инициализация указателей и гласных:
Создайте набор гласных для быстрой проверки.
Установите два указателя: один на начало строки (left), другой на конец строки (right).
2⃣Перестановка гласных:
Пока левый указатель меньше правого, перемещайте указатели к центру, пока не найдёте гласные.
Обменивайте найденные гласные и продолжайте сдвигать указатели.
3⃣Завершение работы:
Когда указатели пересекутся, остановите процесс и верните строку.
😎 Решение:
class Solution {
func reverseVowels(_ s: String) -> String {
var s = Array(s)
let vowels = Set("aeiouAEIOU")
var left = 0, right = s.count - 1
while left < right {
if !vowels.contains(s[left]) {
left += 1
} else if !vowels.contains(s[right]) {
right -= 1
} else {
s.swapAt(left, right)
left += 1
right -= 1
}
}
return String(s)
}
}Ставь 👍 и забирай 📚 Базу знаний