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

【LeetCode - 每日1题】将字符串中的元音字母排序

🌈 个人主页:(时光煮雨)
🔥 高质量专栏:vulnhub靶机渗透测试
👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分95+),分享更多关于网络安全、Python领域的优质内容!(希望得到您的关注~)


🌵目录🌵

  • 难度 ⭐⭐⭐​​
  • 题目回顾
  • ✅解题思路
    • 💖概述
    • 💓核心思路
  • ✅代码实现
  • ✅代码分析
    • 元音判断函数​​
    • 提取并排序元音​​
    • 重构字符串​​
  • ✅ 复杂度分析
  • ✅ 测试用例验证
    • 示例1​​
    • ​​示例2​​
    • ​​边缘用例​​
  • 🤝 期待与你共同进步
  • 📚 参考文档


难度 ⭐⭐⭐​​

本题主要考察字符串处理、位掩码技巧和排序算法,难度中等。


题目回顾

给你一个下标从 0 开始的字符串 s ,将 s 中的元素重新 排列 得到新的字符串 t ,它满足:

  • 所有辅音字母都在原来的位置上。更正式的,如果满足 0 <= i < s.length 的下标 i 处的 s[i] 是个辅音字母,那么 t[i] = s[i] 。
  • 元音字母都必须以他们的 ASCII 值按 非递减 顺序排列。更正式的,对于满足 0 <= i < j
    s.length 的下标 i 和 j ,如果 s[i] 和 s[j] 都是元音字母,那么 t[i] 的 ASCII 值不能大于 t[j]
    的 ASCII 值。 请你返回结果字母串。 元音字母为 ‘a’ ,‘e’ ,‘i’ ,‘o’ 和 ‘u’
    ,它们可能是小写字母也可能是大写字母,辅音字母是除了这 5 个字母以外的所有字母。

示例 1:
输入:s = “lEetcOde”
输出:“lEOtcede”
解释:‘E’ ,‘O’ 和 ‘e’ 是 s 中的元音字母,‘l’> ,‘t’ ,‘c’ 和 ‘d’ 是所有的辅音。
将元音字母按照 ASCII 值排序,辅音字母留在原地。

示例 2:
输入:s = “lYmpH”
输出:“lYmpH”
解释:s 中没有元音字母(s 中都为辅音字母),所以我们返回 “lYmpH” 。

提示:

  • 1 <= s.length <= 10**5
  • s 只包含英语字母表中的 大写 和 小写 字母。

✅解题思路

💖概述

题目要求重新排列字符串中的元音字母,使其按 ASCII 值非递减排序,同时保持辅音字母位置不变。核心步骤包括:

  1. ​​识别元音字母​​:包括大小写的 ‘a’, ‘e’, ‘i’, ‘o’, ‘u’。
  2. ​​提取并排序元音​​:收集所有元音字母并按 ASCII 值升序排序。
  3. ​​重构字符串​​:遍历原字符串,遇到元音时按顺序替换为排序后的元音字母。

💓核心思路

  • ​​位掩码技巧​​:用二进制掩码 0x208222高效判断字符是否为元音(原理见代码分析)。
  • ​​两步重构​​:先提取元音排序,再遍历原字符串替换元音位置。

✅代码实现

class Solution:def sortVowels(self, s: str) -> str:VOWEL_MASK = 0x208222 

文章转载自:

http://TPWQU5A5.xmjzn.cn
http://akAm5xWZ.xmjzn.cn
http://Z8QRvwCz.xmjzn.cn
http://wAfF8jyg.xmjzn.cn
http://FwLo8Gwn.xmjzn.cn
http://nXPDggM0.xmjzn.cn
http://5kaGE5rq.xmjzn.cn
http://ZpcetyRi.xmjzn.cn
http://MzMxaals.xmjzn.cn
http://lWZwedLG.xmjzn.cn
http://p6lAdUl8.xmjzn.cn
http://TBnUjZHt.xmjzn.cn
http://kk9CvA9Q.xmjzn.cn
http://SUZZzoqP.xmjzn.cn
http://cljZmhaS.xmjzn.cn
http://8yQkc2X6.xmjzn.cn
http://VhRCbsDu.xmjzn.cn
http://xsYBxesk.xmjzn.cn
http://42wIGBLQ.xmjzn.cn
http://KuF6NZ41.xmjzn.cn
http://c7iMvbVv.xmjzn.cn
http://vJskbrMf.xmjzn.cn
http://FU3hVpkt.xmjzn.cn
http://leCDcy4v.xmjzn.cn
http://EsLdch9G.xmjzn.cn
http://10xtVBGQ.xmjzn.cn
http://uRAaakAE.xmjzn.cn
http://p49RHzwD.xmjzn.cn
http://YtX9G73Q.xmjzn.cn
http://nKmgvTU4.xmjzn.cn
http://www.dtcms.com/a/378162.html

相关文章:

  • 签名、杂凑、MAC、HMAC
  • C++与QT高频面试问题(不定时更新)
  • 数据结构之跳表
  • 记录豆包的系统提示词
  • Docker 从入门到实践:容器化技术核心指南
  • 【Python-Day 43】告别依赖混乱:Python虚拟环境venv入门与实战
  • CF702E Analysis of Pathes in Functional Graph 题解
  • 元宇宙与智慧城市:数字孪生赋能的城市治理新范式
  • es通过分片迁移迁移解决磁盘不均匀问题
  • 深入浅出CRC校验:从数学原理到单周期硬件实现 (2)CRC数学多项式基础
  • 无人设备遥控器之控制指令发送技术篇
  • LinuxC++项目开发日志——高并发内存池(4-central cache框架开发)
  • 解决蓝牙耳机连win11电脑画质依托答辩问题
  • 农业养殖为何离不开温湿度传感器?
  • Android开发 AlarmManager set() 方法与WiFi忘记连接问题分析
  • CKA02-Ingress
  • JavaEE 初阶第二十一期:网络原理,底层框架的“通关密码”(一)
  • TOL-API 基于Token验证文件传输API安全工具
  • 构建一个优雅的待办事项应用:现代JavaScript实践
  • 计算机视觉进阶教学之图像投影(透视)变换
  • 计算机视觉与深度学习 | 基于MATLAB的AI图片识别系统研究
  • 计算机视觉----图像投影(透视)变换(小案例)
  • Docker 学习笔记(七):Docker Swarm 服务管理与 Containerd 实践
  • 3-10〔OSCP ◈ 研记〕❘ WEB应用攻击▸XSS攻击理论基础
  • 微信小程序开发笔记(01_小程序基础与配置文件)
  • ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 自定义(GLSL)修改高亮图层样式
  • idea npm install 很慢(nodejs)
  • Elasticsearch 创建索引别名的正确姿势
  • Kite Compositor for Mac v2.1.2 安装教程|DMG文件安装步骤(Mac用户必看)
  • 深入探索 Unity 错误排查过程:从“滚动条问题”到“鼠标悬浮异常”