编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
给定 s = "hello", 返回 "holle".
示例 2:
给定 s = "leetcode", 返回 "leotcede".
注意:
元音字母不包括 "y".
使用two pointer算法进行元素之间的替换。
class Solution { public String reverseVowels(String s) { char[] c = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}; Map<Character, Character> map = new HashMap<Character, Character>(); for (char ch : c) { map.put(ch, ch); } int start = 0, end = s.length() - 1; c = s.toCharArray(); while (start < end) { while (start < end && !map.containsKey(c[start])) start++; while (start < end && !map.containsKey(c[end])) end--; char tmp = c[start]; c[start] = c[end]; c[end] = tmp; start ++; end --; } return new String(c); } }