345. 反转字符串中的元音字母
分析
- 定义元音集合:
- 使用一个哈希集合存储所有的元音字母,用于快速判断一个字符是否是元音
- 双指针法:
- 初始化两个指针:
i
指向字符串的起始位置,j
指向字符串的末尾位置 - 使用双指针从两端向中间遍历,找到最近的两个元音字母,交换它们的位置
- 初始化两个指针:
- 具体步骤:
- 如果
s[i]
不是元音,则i
向右移动 - 如果
s[j]
不是元音,则j
向左移动 - 当
s[i]
和s[j]
都是元音时,交换它们,并同时移动两个指针 - 重复上述过程,直到两个指针相遇或交错
- 如果
时间复杂度
- 双指针最多遍历字符串一次,每次操作的时间为
O(1)
总时间复杂度 O(n)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|