反转字符串中的元音字母(简单)

给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。

元音字母包括 'a'、'e'、'i'、'o'、'u',且可能以大小写两种形式出现。

示例 1:

输入:s = "hello"
输出:"holle"
示例 2:

输入:s = "leetcode"
输出:"leotcede"
 

提示:

1 <= s.length <= 3 * 105
s 由 可打印的 ASCII 字符组成

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string
 

思路:使用双重指针start/end,分别指向字符串的头部和尾部;在start<end的时候进行反转,start与end所指字母均为元音字母的时候进行替换,否则不替换,指针移动。

注意:由于使用String,charAt(index)进行取值,所以需要注意越界问题。

class Solution {
    public String reverseVowels(String s) {
        //因为String无法修改,所以利用StringBuffer来进行改变
        StringBuffer result = new StringBuffer(s);
        int start = 0;
        int end = s.length()-1;
        char temp;
        while(start<end){
            while (!isVo(s.charAt(start))&&start<=s.length()-2){
                start++;
            }
            while (!isVo(s.charAt(end))&&end>=1){
                end--;
            }
            if (start<end){
                temp = s.charAt(start);
                result.setCharAt(start,s.charAt(end));
                result.setCharAt(end,temp);
            }
            start++;
            end--;

        }
        return result.toString();
    }

    /**
     * 判断是否为元音字母
     * @param ch
     * @return true:是元音字母   false:不是元音字母
     */
    public boolean isVo(char ch){
        String s = "aeiouAEIOU";
        if (s.indexOf(ch)>=0){
            return true;
        }
        return false;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值