LeetCode75——Day5

文章目录

一、题目

345. Reverse Vowels of a String

Given a string s, reverse only all the vowels in the string and return it.

The vowels are 'a', 'e', 'i', 'o', and 'u', and they can appear in both lower and upper cases, more than once.

Example 1:

Input: s = "hello"

Output: "holle"

Example 2:

Input: s = "leetcode"

Output: "leotcede"

Constraints:

1 <= s.length <= 3 * 105

s consist of printable ASCII characters.

二、题解

双指针思路,定义左指针left和右指针right

cpp 复制代码
class Solution {
public:
    string reverseVowels(string s) {
        int n = s.length();
        unordered_map<char,int> map;
        map['A'] = 1;
        map['a'] = 1;
        map['E'] = 1;
        map['e'] = 1;
        map['I'] = 1;
        map['i'] = 1;
        map['O'] = 1;
        map['o'] = 1;
        map['U'] = 1;
        map['u'] = 1;
        int left = 0;
        int right = n - 1;
        while(left < right){
            while(left < n && !map.count(s[left])) left++;
            while(right > -1 && !map.count(s[right])) right--;
            if(left < right) swap(s[left++],s[right--]);
        }
        return s;
    }
};
相关推荐
大熊猫侯佩2 分钟前
Swift 数学计算:用 Accelerate 框架让性能“加速吃鸡”
算法·swift
wuxuanok3 分钟前
Web后端开发-Mybatis
java·开发语言·笔记·学习·mybatis
杰克尼23 分钟前
2. 两数相加
算法
无聊的小坏坏23 分钟前
单调栈通关指南:从力扣 84 到力扣 42
c++·算法·leetcode
_Coin_-30 分钟前
算法训练营DAY29 第八章 贪心算法 part02
算法·贪心算法
阿维同学40 分钟前
自动驾驶关键算法深度研究
人工智能·算法·自动驾驶
卷到起飞的数分41 分钟前
Java零基础笔记07(Java编程核心:面向对象编程 {类,static关键字})
java·开发语言·笔记
YOLO大师1 小时前
华为OD机试 2025B卷 - 小明减肥(C++&Python&JAVA&JS&C语言)
c++·python·华为od·华为od机试·华为od2025b卷·华为机试2025b卷·华为od机试2025b卷
谁他个天昏地暗1 小时前
Java 实现 Excel 文件对比与数据填充
java·开发语言·excel
kaikaile19951 小时前
使用Python进行数据可视化的初学者指南
开发语言·python·信息可视化