LeetCode 345: Reverse Vowels of a String
2016-05-25 16:04
411 查看
345. Reverse Vowels of a String
Difficulty: EasyWrite 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”.
思路
类似快速排序的一趟。从字符串的两端交替地向中间扫描,扫描到的元音按顺序一一对应交换位置。
需要注意的是,不要漏了元音的大写。
代码
[C++]class Solution { public: string reverseVowels(string s) { if(s.length() <= 0) return s; int i = 0; int j = s.length() - 1; while(i < j) { while(i < j && !IsVowels(s[i])) i++; while(i < j && !IsVowels(s[j])) j--; if(i < j) { int temp = s[i]; s[i] = s[j]; s[j] = temp; i++;j--; } } return s; } bool IsVowels(char c) { if(c == 'a' || c =='e' || c == 'i' || c =='o' || c == 'u' || c == 'A' || c =='E' || c == 'I' || c =='O' || c == 'U') return true; else return false; } };
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性