码迷,mamicode.com
首页 > 其他好文 > 详细

345. Reverse Vowels of a String

时间:2018-04-09 13:22:03      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:while   val   链接   char   指针方法   tco   out   toc   str   

原题链接:https://leetcode.com/problems/reverse-vowels-of-a-string/description/
跟反转字符串那道题目类似,直接双指针方法走起:

import java.util.HashSet;

/**
 * Created by clearbug on 2018/2/26.
 */
public class Solution {

    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.reverseVowels("hello"));
        System.out.println(s.reverseVowels("leetcode"));
    }

    public String reverseVowels(String s) {
        if (s == null || s.length() < 2) {
            return s;
        }

        HashSet<Character> set = new HashSet<>(10);
        set.add(‘a‘);
        set.add(‘o‘);
        set.add(‘e‘);
        set.add(‘i‘);
        set.add(‘u‘);
        set.add(‘A‘);
        set.add(‘O‘);
        set.add(‘E‘);
        set.add(‘I‘);
        set.add(‘U‘);

        char[] chars = s.toCharArray();
        int i = 0, j = s.length() - 1;
        while (i < j) {
            while (i < j && !set.contains(chars[i])) {
                i++;
            }
            while (j > i && !set.contains(chars[j])) {
                j--;
            }
            if (i == j) {
                return String.valueOf(chars);
            }
            chars[i] ^= chars[j];
            chars[j] ^= chars[i];
            chars[i] ^= chars[j];
            i++;
            j--;
        }
        return String.valueOf(chars);
    }

}

345. Reverse Vowels of a String

标签:while   val   链接   char   指针方法   tco   out   toc   str   

原文地址:https://www.cnblogs.com/optor/p/8758945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!