当前位置: 首页 > news >正文

【LeetCode每日一题】LeetCode 345.反转字符串中的元音字母

LeetCode 345.反转字符串中的元音字母

题目描述

给定一个字符串 s,你需要反转字符串中所有的元音字母,并返回新的字符串。
元音字母是 a, e, i, o, u,这些字母的大小写都会被考虑。

示例 1:
输入: s = "hello"
输出: "holle"

示例 2:
输入: s = "leetcode"
输出: "leotcede"

Java 实现代码

class Solution {public String reverseVowels(String s) {// 用一个字符数组来保存字符串,便于修改char[] arr = s.toCharArray();// 设置左右指针int left = 0, right = arr.length - 1;// 使用双指针反转元音字母while (left < right) {// 找到左边的元音字母while (left < right && !isVowel(arr[left])) {left++;}// 找到右边的元音字母while (left < right && !isVowel(arr[right])) {right--;}// 交换元音字母char temp = arr[left];arr[left] = arr[right];arr[right] = temp;left++;right--;}// 返回新的字符串return new String(arr);}// 判断字符是否为元音字母private boolean isVowel(char c) {return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O'|| c == 'U';}
}

解题思路

  1. 双指针法: 使用两个指针 leftright 分别指向字符串的两端。左指针向右移动,右指针向左移动,直到它们相遇。
  2. 判断元音字母: 定义一个辅助方法 isVowel() 来判断一个字符是否是元音字母。可以通过字符比较的方式判断是否属于 a, e, i, o, u 或其大写形式。
  3. 交换元音字母: 每当找到左右指针指向的字符都是元音字母时,交换这两个字符。
  4. 跳过非元音字母: 如果某个指针指向的字符不是元音字母,则该指针继续向中间移动,直到找到下一个元音字母。
  5. 终止条件: 当左指针和右指针相遇或交错时,停止交换。

时间复杂度分析

  • 时间复杂度: O(n),其中 n 是字符串的长度。我们遍历字符串一次,每次操作的时间是常数时间。
  • 空间复杂度: O(n),我们将字符串转换为字符数组进行操作。
http://www.lryc.cn/news/508343.html

相关文章:

  • 蓝桥杯练习生第四天
  • cesium 常见的 entity 列表
  • Java旅程(五)Spring 框架与微服务架构 了解 JVM 内部原理和调优
  • Niushop-master靶场漏洞
  • 35道面向初中级前端的基础面试题
  • MFC用List Control 和Picture控件实现界面切换效果
  • 1. 解决前端vue项目 vite打包内存溢出问题
  • Springboot高并发乐观锁
  • 【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等
  • pytorch MoE(专家混合网络)的简单实现。
  • 虚拟机VMware的安装问题ip错误,虚拟网卡
  • Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门hello world输出【入门一】
  • 重温设计模式--命令模式
  • 电力通信规约-104实战
  • 什么是事务
  • 数据结构:双向循坏链表
  • 3.1、SDH的5种标准容器
  • Jenkins介绍
  • 5G学习笔记之Non-Public Network
  • 网页生成鸿蒙App
  • JavaWeb通过Web查询数据库内容:(pfour_webquerymysql)
  • 将java项目部署到linux
  • moviepy将图片序列制作成视频并加载字幕 - python 实现
  • ROS1入门教程5:简单行为处理
  • Vue:实现输入框不能输负数功能
  • 管理系统、微信小程序类源码文档-哔哩哔哩教程同步
  • AOP切点表达式之方法表达式execution
  • clickhouse-题库
  • 在 Sanic 应用中使用内存缓存管理 IP 黑名单
  • 可翻折的CPCI导冷板卡插拔机构