首页 > 编程语言 > 详细

leetcode 345.反转字符串中的元音字母(双指针 java)(有地方不懂)

时间:2019-08-29 21:55:40      阅读:70      评论:0      收藏:0      [点我收藏+]

https://leetcode-cn.com/problems/reverse-vowels-of-a-string/submissions/

 

先定义一个boolean型数组,令所有元音(注意大小写,aeiouAEIOU)所在的ascii码为true,其他为false,将s转成字符串型(toCharArray()函数),双指针依次判断,遇到元音即交换。

 

class Solution {
    private static boolean[] vowels=new boolean[123];     //第一处疑问,为什么要private和static修饰?
    static{
        vowels[‘a‘]=true;
        vowels[‘e‘]=true;
        vowels[‘i‘]=true;
        vowels[‘o‘]=true;
        vowels[‘u‘]=true;
        vowels[‘A‘]=true;
        vowels[‘E‘]=true;
        vowels[‘I‘]=true;
        vowels[‘O‘]=true;
        vowels[‘U‘]=true;
    }
    
    public String reverseVowels(String s) {
        char[] ans=s.toCharArray();
        int i=0,j=ans.length-1;
        while(i<j){
            if(!vowels[ans[i]])
            {
                i++;
                continue;
            }
            if(!vowels[ans[j]])
            {
                j--;continue;
            }
            char temp=ans[i];
            ans[i]=ans[j];
            ans[j]=temp;
            i++;
            j--;
        }
        return new String(ans);          //?这种形式不太懂,()里为什么可以直接填ans
    }
}

 

leetcode 345.反转字符串中的元音字母(双指针 java)(有地方不懂)

原文:https://www.cnblogs.com/y1040511302/p/11432184.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!