1,问题简述
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。
2,示例
示例 1:
输入:"hello"
输出:"holle"
示例 2:
输入:"leetcode"
输出:"leotcede"
提示:
元音字母不包含字母 "y" 。
3,题解程序
双指针的使用
4,题解程序
import java.util.HashSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ReverseVowelsTest {
public static void main(String[] args) {
String s = "hello";
String reverseVowels = reverseVowels(s);
System.out.println("reverseVowels = " + reverseVowels);
}
public static String reverseVowels(String s) {
HashSet<Character> hashSet = new HashSet<>(Stream.of('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U').collect(Collectors.toList()));
if (s == null || s.length() == 0) {
return s;
}
int i = 0;
int j = s.length() - 1;
char[] result = new char[s.length()];
while (i <= j) {
char ci = s.charAt(i);
char cj = s.charAt(j);
if (!hashSet.contains(ci)) {
result[i++] = ci;
} else if (!hashSet.contains(cj)) {
result[j--] = cj;
} else {
result[i++] = cj;
result[j--] = ci;
}
}
return new String(result);
}
}
5,题解程序图片版
6,总结
自己目前还处于一直在输出内容的道路上,等需要的时候,自己会单独写一篇自己的总结分享给到需要的人,这样可能会对大家有所帮助,其实现在想说的是,当自己实习时,觉得会做项目,就是应用层层面的内容,觉得很了不起,那个时候觉得写代码是一种多么值得令人高兴的事情了,但是随着你自己对开发的认知,慢慢你会感觉自己以前很无知啊,这或许对于自己就是进步的一面,慢慢地随着自己内心的脚步去走吧,这样或许对于你自己有一点好处的,或许也不会,未来未知