LeetCode:345. Reverse Vowels of a String 解题

345. Reverse Vowels of a String

Difficulty: Easy

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:
Given s = "hello", return "holle".

Example 2:
Given s = "leetcode", return "leotcede".

 

说明:这里是翻转字符串中的原音,

比如字符串是:a, e, i , o, u

你们翻转过来就是 u, o, i, e, a; 第一个和最后一个,第二个和到二个。

遍历是最简单的方法,设置 left和right,两个坐标,分别从数组的头部和尾部逐渐开始遍历,遇到元音停下,遇到非元音分别往中间靠拢,直到两边都遇到元音,交换,再同时靠拢,终止条件是left>=right。

代码:

public class Solution {
    public String reverseVowels(String s) {
        char[] sArray = s.toCharArray();
        int length = sArray.length;
        int position = -1;
        int left = 0;
        char[] result = {'A', 'E', 'I', 'O', 'U','a', 'e', 'i', 'o', 'u', };
        int right = sArray.length - 1;
        while (left < right) {
            char leftChar = sArray[left];
            int leftifin = Arrays.binarySearch(result,  leftChar);
            if (leftifin < 0) {
                left ++;
            }
            char rigthChar = sArray[right];
            int rightifin = Arrays.binarySearch(result,  rigthChar);
            if (rightifin < 0) {
                right --;
            }
            
            if(leftifin >= 0 && rightifin >= 0) {
                char temp = sArray[left];
                sArray[left] = sArray[right];
                sArray[right] = temp;
                left ++;
                right --;
            }
        }
        return new String(sArray);
    }
}

 

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值