2785. Sort Vowels in a String

Difficulty:
Related Topics:
Similar Questions:

Problem

Given a 0-indexed string s, permute s to get a new string t such that:

Return the resulting string.

The vowels are 'a', 'e', 'i', 'o', and 'u', and they can appear in lowercase or uppercase. Consonants comprise all letters that are not vowels.

Example 1:

Input: s = "lEetcOde"
Output: "lEOtcede"
Explanation: 'E', 'O', and 'e' are the vowels in s; 'l', 't', 'c', and 'd' are all consonants. The vowels are sorted according to their ASCII values, and the consonants remain in the same places.

Example 2:

Input: s = "lYmpH"
Output: "lYmpH"
Explanation: There are no vowels in s (all characters in s are consonants), so we return "lYmpH".

Constraints:

Solution (Java)

class Solution {
    public String sortVowels(String s) {
        char ch[]=s.toCharArray();
        StringBuilder sb=new StringBuilder();
        char temp[]=new char[ch.length];
        for(int i=0;i<ch.length;i++){
            if(ch[i]=='a'||ch[i]=='e'||ch[i]=='i'||ch[i]=='o'||ch[i]=='u'){
               sb.append(ch[i]);
            }
            else if(ch[i]=='A'||ch[i]=='E'||ch[i]=='I'||ch[i]=='O'||ch[i]=='U'){
               sb.append(ch[i]);

            }
            else{
                temp[i]=ch[i];
            }
        }

        char c[]=sb.toString().toCharArray();
        Arrays.sort(c);
        int j=0;
        for(int i=0;i<ch.length;i++){
            if(ch[i]=='a'||ch[i]=='e'||ch[i]=='i'||ch[i]=='o'||ch[i]=='u'){
                temp[i]=c[j];
                j++;
            }
            else if(ch[i]=='A'||ch[i]=='E'||ch[i]=='I'||ch[i]=='O'||ch[i]=='U'){
                temp[i]=c[j];
                j++;
            }
        }
        String ans="";
        for(int i=0;i<temp.length;i++){
            ans+=temp[i];
        }
        return ans;
    }
}

Explain:

nope.

Complexity: