LeetCode 345. 反转字符串中的元音字母(JAVA)

作者: freesan44 | 来源:发表于2020-06-19 08:23 被阅读0次

    题目

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

    示例 1:
    
    输入: "hello"
    输出: "holle"
    示例 2:
    
    输入: "leetcode"
    输出: "leotcede"
    

    说明:
    元音字母不包含字母"y"。

    解题思路

    public String reverseVowels(String s) {
            //双指针
            char[] charList = s.toCharArray();
            int left = 0;
            int right = charList.length-1;
            char[] metaList = {'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'};
            while (left < right){
    //            System.out.println(left + " " + right);
                int retSearchLeft = Arrays.binarySearch(metaList, charList[left]);
                int retSearchRight = Arrays.binarySearch(metaList, charList[right]);
    //            System.out.println(retSearchLeft + "+" + retSearchRight);
                if (retSearchLeft >= 0 && retSearchRight >= 0){
                    char temp = charList[left];
                    charList[left] = charList[right];
                    charList[right] = temp;
                    left++;
                    right--;
                }
                else if (retSearchLeft < 0){
                    left++;
                }
                else {
                    right--;
                }
            }
            s = String.valueOf(charList);
            return s;
        }
    

    相关文章

      网友评论

        本文标题:LeetCode 345. 反转字符串中的元音字母(JAVA)

        本文链接:https://www.haomeiwen.com/subject/yfgmxktx.html