四时宝库

程序员的知识宝库

345. 反转字符串中的元音字母(leetcode 解题)

编写一个函数,以字符串作为输入,反转该字符串中的元音字母。

示例 1:

输入: "hello"

输出: "holle"

示例 2:

输入: "leetcode"

输出: "leotcede"

说明:

元音字母不包含字母"y"。

解题思想:题目和之前的反转字符串类似,只不过这次多了个字符串排除,仍然是头尾双指针来解决。

public String reverseVowels(String s) {
 HashSet<Character> set = new HashSet<Character>() {
 {
 add('a');
 add('o');
 add('e');
 add('i');
 add('u');
 add('A');
 add('O');
 add('E');
 add('I');
 add('U');
 }
 };
 int i = 0, j = s.length() - 1;
 char[] result = new char[s.length()];
 while (i <= j) {
 char ci = s.charAt(i);
 char cj = s.charAt(j);
 if (!set.contains(ci)) {
 result[i++] = ci;
 } else if (!set.contains(cj)) {
 result[j--] = cj;
 } else {
 result[i++] = cj;
 result[j--] = ci;
 }
 }
 return new String(result);
}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接