Leetcode345. Reverse Vowels of a String
来源:互联网 发布:偏导和导数的区别知乎 编辑:程序博客网 时间:2024/06/05 20:37
原题
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”.
大意
在字符串中对调元音字母,比如hello变为holle;leetcode变为leotcede;返回变换后的字符串。
思路
确定元音字母为aoeiu,并且要考虑大写字母;
遍历字符串,使用两个指针来遍历,如果元音字母集合中不包含字符串中的数组,则向前移,后一个指针也是一样;
代码
char[] chars = s.toCharArray(); String voweld = "aoeiuAOEIU"; int start = 0; int end = s.length() - 1; while (start < end) { while(start<end&&!voweld.contains(chars[start]+"")){ start++; } while(start<end&&!voweld.contains(chars[end]+"")){ end--; } if (start < end) { char c = chars[start]; chars[start++] = chars[end]; chars[end--] = c; } } System.out.println(new String(chars)); return new String(chars);
后来看到一个简单的解法,使用hash表,参考
http://www.cnblogs.com/qinduanyinghua/p/5510079.html
1 class Solution { 2 public: 3 string reverseVowels(string s) { 4 set<char> hash{'a', 'e', 'o', 'i', 'u','A', 'E', 'I', 'O', 'U'}; 5 int len = s.length(); 6 int left = 0, right = len - 1; 7 while(left < right){ 8 if(hash.count(s[left]) == 0) 9 left++;10 if(hash.count(s[right]) == 0)11 right--;12 if(hash.count(s[left]) != 0 && hash.count(s[right]) != 0 ){13 swap(s[left], s[right]);14 left++;15 right--;16 }17 }18 return s;19 20 }21 };
原题链接
0 0
- LeetCode345—Reverse Vowels of a String
- LeetCode345. Reverse Vowels of a String
- Leetcode345. Reverse Vowels of a String
- leetcode345: Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- Reverse Vowels of a String
- String:345. Reverse Vowels of a String
- 面试问题 高频问题
- Android实现一个电话界面
- Spring装配bean
- 在matlab2016a下安装libsvm工具
- 轻松面试
- Leetcode345. Reverse Vowels of a String
- (转)CSS 基本知识
- 面试类别
- java.lang.String.trim()函数的使用
- 12月25本周总结
- 简历
- 著名第三方ROM Cyanogen Mod宣布关闭
- DSI83参数配置
- 傅立叶变换学习