LeetCode:反转字符串中的元音字母【345】
题目描述
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
示例 1:
输入: "hello"
输出: "holle"
示例 2:
输入: "leetcode"
输出: "leotcede"
说明:
元音字母不包含字母"y"。
题目分析
所谓的做题就是把以前背下来的拿过来改一下即可。双指针碰撞模型,之前已经描述过很多次了,此处不在赘述。
知道AEIOU是元音字母?左右指针所指向元素交换一下位置即可。
Java题解
class Solution {
public String reverseVowels(String s) {
char[] arr = s.toCharArray();
int left =0;
int right =arr.length-1; while(left<right)
{
while(!isYuanYin(s.charAt(left))&&left<right)
left++;
while(!isYuanYin(s.charAt(right))&&left<right)
right--;
swap(left,right,arr);
left++;right--;
}
return new String(arr); } public boolean isYuanYin(char c)
{
if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u')
return true;
if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
return true;
return false;
} public void swap(int i,int j,char[] arr)
{
char tmp = arr[i];
arr[i] =arr[j];
arr[j]=tmp;
}
}