345. Reverse Vowels of a String

class Solution {

    /**
     * @param String $s
     * @return String
     */
    function reverseVowels($s) {
        $vowels = [ 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
        $start = 0;
        $end = strlen($s) - 1;
        while($start < $end) {
            $startIsVowel = in_array($s[$start], $vowels);
            $endIsVowel = in_array($s[$end], $vowels);
            if ($startIsVowel && $endIsVowel) {
                [$s[$start], $s[$end]] = [$s[$end], $s[$start]];
                $start++;
                $end--;
            } elseif($startIsVowel) {
                $end--;
            } elseif($endIsVowel) {
                $start++;
            } else {
                $end--;
                $start++;
            }
        }
    
        return $s;
    }
}

Last updated