345. Reverse Vowels of a String

 

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:
Given s = "hello", return "holle".

Example 2:
Given s = "leetcode", return "leotcede".

Note:
The vowels does not include the letter "y".

 

public string ReverseVowels(string s) {
        if(s == "") return s;
        var ss = s. ToCharArray();
        int left=0;
        int right = s.Length-1;
        var vowels = new List<char>(){'a','o','e','u','i','A','O','E','I','U'};
        while(left< right)
        {
            if(vowels.Contains(s[left]) && vowels.Contains(s[right]))  Swap(ss, left++,right--);
            else if(!vowels.Contains(s[left])) left++;
            if(!vowels.Contains(s[right])) right--;
        }
        return new string(ss);
    }
    private void Swap(char[] ss, int i, int j)
    {
        char temp = ss[i];
        ss[i] = ss[j];
        ss[j] = temp;
    }

 

posted @ 2016-09-25 03:38  咖啡中不塌缩的方糖  阅读(120)  评论(0编辑  收藏  举报