Сложность: easy
Дана строка s, переверните только все гласные в строке и верните её.
Гласные: 'a', 'e', 'i', 'o', 'u', а также их верхние регистры.
Пример:
Input: s = "hello"
Output: "holle"
👨💻 Алгоритм:
1⃣Инициализация указателей и гласных:
Создайте набор гласных для быстрой проверки.
Установите два указателя: один на начало строки (left), другой на конец строки (right).
2⃣Перестановка гласных:
Пока левый указатель меньше правого, перемещайте указатели к центру, пока не найдёте гласные.
Обменивайте найденные гласные и продолжайте сдвигать указатели.
3⃣Завершение работы:
Когда указатели пересекутся, остановите процесс и верните строку.
😎 Решение:
class Solution {
function reverseVowels($s) {
$vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
$s = str_split($s);
$left = 0;
$right = count($s) - 1;
while ($left < $right) {
if (!in_array($s[$left], $vowels)) {
$left++;
} else if (!in_array($s[$right], $vowels)) {
$right--;
} else {
$temp = $s[$left];
$s[$left] = $s[$right];
$s[$right] = $temp;
$left++;
$right--;
}
}
return implode('', $s);
}
}Ставь 👍 и забирай 📚 Базу знаний