All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0301_0400.s0345_reverse_vowels_of_a_string.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0301_0400.s0345_reverse_vowels_of_a_string;

// #Easy #String #Two_Pointers #2022_07_11_Time_3_ms_(98.02%)_Space_42.2_MB_(98.08%)

/**
 * 345 - Reverse Vowels of a String\.
 *
 * Easy
 *
 * Given a string `s`, reverse only all the vowels in the string and return it.
 *
 * The vowels are `'a'`, `'e'`, `'i'`, `'o'`, and `'u'`, and they can appear in both cases.
 *
 * **Example 1:**
 *
 * **Input:** s = "hello"
 *
 * **Output:** "holle"
 *
 * **Example 2:**
 *
 * **Input:** s = "leetcode"
 *
 * **Output:** "leotcede"
 *
 * **Constraints:**
 *
 * *   1 <= s.length <= 3 * 105
 * *   `s` consist of **printable ASCII** characters.
**/
public class Solution {
    private boolean isVowel(char c) {
        return c == 'a' || c == 'A' || c == 'e' || c == 'E' || c == 'i' || c == 'I' || c == 'o'
                || c == 'O' || c == 'u' || c == 'U';
    }

    public String reverseVowels(String str) {
        int i = 0;
        int j = str.length() - 1;
        char[] str1 = str.toCharArray();
        while (i < j) {
            if (!isVowel(str1[i])) {
                i++;
            } else if (!isVowel(str1[j])) {
                j--;
            } else {
                // swapping
                char t = str1[i];
                str1[i] = str1[j];
                str1[j] = t;
                i++;
                j--;
            }
        }
        return String.copyValueOf(str1);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy