题目描述: 写一个函数,实现输入一个字符串,然后把其中的元音字母倒叙 注意
元音字母包含大小写,元音字母有五个a,e,i,o,u
原文描述:
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".
Note:
The vowels does not include the letter "y".
思路:
使用HashSet的数据结构存储者10个字符
遍历字符串,使用int【s.length】记录元音的位置,元音的个数为n
遍历字符串,根据上一个数组,把所有的元音字母(索引为i)换成string.charAt(n-i-1)处的字符 代码:
public class Solution { public String reverseVowels(String s) { if(s == null){ return null; } int[] array = new int[s.length()]; int index = 0; HashSet<Character> vowel = new HashSet<Character>(); vowel.add('a'); vowel.add('e'); vowel.add('i'); vowel.add('o'); vowel.add('u'); vowel.add('A'); vowel.add('E'); vowel.add('I'); vowel.add('O'); vowel.add('U'); for (int i = 0; i < s.length(); i++) { if (vowel.contains(s.charAt(i))) { array[index] = i; index++; } } char[] result = new char[s.length()]; result = s.toCharArray(); for (int i = 0; i < index; i++) { result[array[i]] = s.charAt(array[index - i - 1]); } return String.valueOf(result); } }
更多的leetcode的经典算法,查看我的leetcode专栏,链接如下:
leetcode专栏