力扣每日一题:2734. 执行子串操作后的字典序最小字符串

题目链接

脑子比较笨,分三种情况考虑:

  1. 以a开头。
  2. xxa,a在中间。
    对于情况2还有两种可能:
    1. 全是a,最后一个元素需要替换成z,因为必须执行一次操作。
    2. aaaxxa,中间有一段非a,将这段改变即可。

垃圾实现代码:

class Solution {
public:string smallestString(string s) {int fidx = -1, sidx = -1;string ans = "";for (int i = 0; i < s.size(); i ++ ) {if (s[i] == 'a') {fidx = i;break;}}if (fidx == 0) {// a 开头的int j = 0;while(s[j] == 'a') {j ++;}// j 第一个不是a的元素if (j == s.size()) { // 全是afor (int i = 0; i < s.size(); i ++ ) {ans += s[i];}ans[s.size() - 1] = 'z';return ans;} else { // aaaa xxxxx afor (; j < s.size(); j ++ ) {if (s[j] == 'a') {sidx = j;break;}}for (int i = 0; i < s.size(); i ++ ) {if (i < j && s[i] !='a') {ans += (s[i] - 1);} else {ans += s[i];}}return ans;}} else if (fidx != -1 ){ // bbb afor (int i = 0; i < s.size(); i ++ ) {if (i < fidx) {ans += (s[i] - 1);} else {ans += s[i];}}return ans;} else {for (int i = 0; i < s.size(); i ++ ) {ans += (s[i] - 1);}return ans;}}
};

灵神的代码(我的看起来好傻):
从左到右找到第一个不等于 a 的字符 s[i],然后从 i 开始,把每个字符都减一,直到遍历结束或者遇到了 a。例如 abca 操作中间的子串 bc,得到答案 aaba。

细节:如果 s 全为 a,由于题目要求必须操作一次,可以把最后一个 a 改成 z。


class Solution {
public:string smallestString(string s) {int n = s.length();for (int i = 0; i < n; i++) {if (s[i] > 'a') {// 继续向后遍历for (; i < n && s[i] > 'a'; i++) {s[i]--;}return s;}}// 所有字母均为 as.back() = 'z';return s;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高中数学:不等式-常见题型解题技巧

一、“1”的代换 练习 例题1 例题2 解 二、基本不等式中的“变形” 就是&#xff0c;一般情况下&#xff0c;我们在题目中&#xff0c;是不能够直接使用基本不等式进行求解的。 而是要对条件等式进行变形&#xff0c;满足基本不等式的使用条件 练习 例题1 解析 两边同…

一个最简单的MySQL事务模拟测试

这里只是简单写了一个转账的小事务&#xff0c;模拟一下事务的过程 代码&#xff1a; 初始数据&#xff1a; 当你关闭自动提交 并且开启一个事务执行了下面的更新语句 但是没有提交时&#xff1a; 此时虽然你运行查询语句会发现他的值发生了变化 &#xff0c;但是当你运行回滚…

鸿蒙开发HarmonyOS NEXT (一) 入门

最近总听见大家讨论鸿蒙&#xff0c;前端转型的好方向&#xff1f;先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示&#xff1a;要占用的空间比较多&#xff0c;建议安装在剩余空间多的盘 1、下载&#xff1a;官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…

普通大龄程序员的工作十年(一)

今年以来&#xff0c;焦虑不安的情绪一直弥漫在汽车、自动驾驶行业的圈子里&#xff0c;业内很多中小公司关门倒闭&#xff1b;很多大厂&#xff0c;例如理想、蔚来、本田、几个老东家们等等相继裁员&#xff1b;上个月我被迫换工作的时候&#xff0c;联系了很多老朋友&#xf…

放烟花短视频素材去哪里找?去哪里下载?烟花素材网分享

在当代社会&#xff0c;短视频凭借其独有的魅力成为大众传递情感、记录生活、分享快乐的新兴方式。特别是在庆祝节日和特殊时刻时&#xff0c;烟花的绚丽效果常常被用来吸引观众的目光&#xff0c;成为视频作品中的亮点。然而&#xff0c;对于短视频制作者来说&#xff0c;寻找…

关于瑆箫博客、安语未博客、上网导航、智能助手等维护通知

尊敬的用户&#xff1a; 您好&#xff01; 为了给您提供更优质、稳定和高效的服务&#xff0c;我们将于 2024 年 6 月 29 日起对瑆箫博客、安语未博客、上网导航以及智能助手进行维护。维护期间&#xff0c;相关服务可能会出现暂时无法使用或功能受限的情况。 此次维护旨在对系…

使用Spring Boot Actuator监控应用健康状态

使用Spring Boot Actuator监控应用健康状态 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何利用Spring Boot Actuator来监控和管理应用程序的…

简单了解css的基本使用

CSS 一、基础认知 1、CSS引入方式 1.1、内嵌式&#xff08;CSS写在style标签中&#xff09; style标签虽然可以写在页面的任意位置&#xff0c;但是通常约定写在head标签中 2.2、外联式&#xff08;CSS写在一个单独的.css文件中&#xff09; 需要通过link标签在网页中引入…

初探 YOLOv8(训练参数解析)

文章目录 1、前言2、Backbone网络3、YOLOv8模型训练代码3.1、模型大小选择3.2、训练参数设置 4、训练参数说明5、目标检测系列文章 1、前言 YOLO 因为性能强大、消耗算力较少&#xff0c;一直以来都是实时目标检测领域的主要范式。该框架被广泛用于各种实际应用&#xff0c;包…

探索音频创作的无限可能——Studio One 5 软件深度解析

Studio One 5 是一款功能强大且备受赞誉的音频制作软件&#xff0c;无论是专业音乐制作人还是业余爱好者&#xff0c;都能在其中找到满足自己需求的强大功能。 对于 Mac 和 Windows 用户来说&#xff0c;Studio One 5 提供了一个直观且友好的操作界面。其简洁明了的布局让用户…

6.27学习总结

一、高数 1、斯托克斯公式&#xff08;曲线<->曲面&#xff09;&#xff1a;看清顺时针&#xff08;负&#xff09;/逆时针&#xff08;正&#xff09; 2、曲面方程变二重积分&#xff1a; 前、上、右&#xff1a;正&#xff1b; 后、下、左&#xff1a;负&#xff1b; 3…

Windows的内核对象

内核对象句柄特定于进程。 也就是说,进程必须创建 对象或打开现有对象以获取内核对象句柄。 内核句柄上的每个进程限制为 2^24。 但是,句柄存储在分页池中,因此可以创建的实际句柄数取决于可用内存。 可以在 32 位 Windows 上创建的句柄数明显低于 2^24。 任何进程都可以为…

Haproxy负载均衡集群

一、HAProxy介绍 HAProxy是法国开发者威利塔罗(Willy Tarreau)在2000年使用C语言开发的一个开源软件&#xff0c;是一款具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器&#xff0c;支持基于cookie的持久性&#xff0c;自动故障切换&#xff0c;支持正则表达式及web状态统…

【Python】易错题 [1]

目录 一、选择&#xff1a; 1.列表的复制​编辑 2.函数 二、填空 一、选择&#xff1a; 1.列表的复制 在Python中&#xff0c;列表是可变的数据类型。当将一个列表赋值给另一个变量时&#xff0c;实际上是将这个变量的引用指向原始列表。&#xff08;指针&#xff09;因此&…

【SCAU操作系统】期末复习应用题例题解析

1、 5 个作业 A&#xff5e;E 同时到达一个单 CPU 系统&#xff0c;且以 A&#xff5e;E 的顺序进入就绪队列。估计运行 时间分别为 10&#xff0c;6&#xff0c;2&#xff0c;4 和 8 分钟&#xff0c;优先级分别为 3&#xff0c;5&#xff0c;2&#xff0c;1 和 4&#xff08…

【FFmpeg】avformat_alloc_output_context2函数

【FFmpeg】avformat_alloc_output_context2函数 1.avformat_alloc_output_context21.1 初始化AVFormatContext&#xff08;avformat_alloc_context&#xff09;1.2 格式猜测&#xff08;av_guess_format&#xff09;1.2.1 遍历可用的fmt&#xff08;av_muxer_iterate&#xff0…

VTK----深入理解3D坐标系统和相机

对于有3D开发经验的工作者来说,3D坐标系统和相机是再熟悉不过的内容了,所以这篇文字并不是对它们基本概念的的介绍,而是结合自身对于3D坐标系统和相机中一些似懂非懂问题(如下面的列表)的解答以及详细说明VTK是如何实现3D坐标系统和相机的。 1. 下面这组用于绘制立方体的顶…

【C++PCL】点云处理点云密度计算优化

作者:迅卓科技 简介:本人从事过多项点云项目,并且负责的项目均已得到好评! 公众号:迅卓科技,一个可以让您可以学习点云的好地方 重点:每个模块都有参数如何调试的讲解,即调试某个参数对结果的影响是什么,大家有问题可以评论哈,如果文章有错误的地方,欢迎来指出错误的…

jenkins下后台运行链接Jenkins服务脚本方法

为了编写一个用于在后台运行 Jenkins agent 的批处理脚本&#xff0c;你可以使用 start 命令来启动 Java 进程并将其设置为在后台运行。以下是一个示例批处理脚本 run_agent.bat&#xff1a; bat echo off setlocalREM Set the path to the Jenkins agent JAR file set AGENT…

TEMU全/半托管订单如何避免错发/漏发?用妙手ERP扫描发货功能!

这两年&#xff0c;因为全托管/半托管模式的火爆&#xff0c;跨境卖家纷纷加入全托管和半托管&#xff0c;许多卖家在加入后&#xff0c;店铺频频爆单。 以为是泼天富贵&#xff0c;没想到却因为发货问题亏麻了&#xff1a;发货效率低&#xff0c;导致超过平台发货时效&#x…