LeetCode#345. Reverse Vowels of a String

来源:互联网 发布:图像领域的经典算法 编辑:程序博客网 时间:2024/06/13 05:41
  • 题目:反转字符串中的元音字母
  • 难度:Easy
  • 思路:借鉴二分查找的思想,分别从前后进行查找,找到元音字母,就交换
  • 代码:
public class Solution {    public String reverseVowels(String s) {        if(s == null || s.equals("")){            return s;        }        String vowels = "aeouiAEOUI";        StringBuilder sb = new StringBuilder(s);        int len = s.length();        int left = 0;        int right = len-1;        while(left < right){            char ch1 = sb.charAt(left);            char ch2 = sb.charAt(right);            while(left < right && vowels.indexOf(ch1) == -1){                left++;                ch1 = sb.charAt(left);            }             while(left < right && vowels.indexOf(ch2) == -1){                right--;                ch2 = sb.charAt(right);            }            if(left < right){                sb.replace(left,left+1,String.valueOf(ch2));                sb.replace(right,right+1,String.valueOf(ch1));              }             left++;            right--;        }        return sb.toString();    }}