2734. 执行子串操作后的字典序最小字符串

news/2025/3/31 22:22:13/

给你一个仅由小写英文字母组成的字符串 s 。在一步操作中,你可以完成以下行为:

选则 s 的任一非空子字符串,可能是整个字符串,接着将字符串中的每一个字符替换为英文字母表中的前一个字符。例如,'b' 用 'a' 替换,'a' 用 'z' 替换。
返回执行上述操作 恰好一次 后可以获得的 字典序最小 的字符串。

子字符串 是字符串中的一个连续字符序列。

现有长度相同的两个字符串 x 和 字符串 y ,在满足 x[i] != y[i] 的第一个位置 i 上,如果  x[i] 在字母表中先于 y[i] 出现,则认为字符串 x 比字符串 y 字典序更小 。
 

示例 1:

输入:s = "cbabc"
输出:"baabc"
解释:我们选择从下标 0 开始、到下标 1 结束的子字符串执行操作。 
可以证明最终得到的字符串是字典序最小的。
示例 2:

输入:s = "acbbc"
输出:"abaab"
解释:我们选择从下标 1 开始、到下标 4 结束的子字符串执行操作。
可以证明最终得到的字符串是字典序最小的。
示例 3:

输入:s = "leetcode"
输出:"kddsbncd"
解释:我们选择整个字符串执行操作。
可以证明最终得到的字符串是字典序最小的。
 

提示:

1 <= s.length <= 3 * 105
s 仅由小写英文字母组

思路: 关注本题条件:恰好一次;首先找到第一个非a的字符,然后开始替换,直到遇到下一个字符a,如果是全a的情况将最后的a,替换成字符z即可.

class Solution {
public:string smallestString(string s) {int len = s.size();if(len == 1 && s[0] == 'a') return s;for(int i = 0;i<len;i++){if(s[i] >'a') s[i] = (char)((int)s[i]-1);else if(s[i] == 'a' && i>0) break;}return s;}
};


http://www.ppmy.cn/news/437363.html

相关文章

Ansible配置和模块

Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需…

【详解】篮球记分牌硬件及代码

篮球记分牌设计 1 系统设计1.1 设计任务 1.2 性能指标要求1.2 设计思路及设计框图1.2.1设计思路1.2.2总体设计框图1.2.3电路原理图1.2.3 PCB布线图 2 主要程序模块的设计及原理2.1 外部中断0 2.2 菜单2.3 两队比分及两队犯规次数显示及修改2.3.1选择功能2.3.2修改功能2.3.3显示…

关于SIM卡的STK应用

关于SIM卡的STK应用 有人说在20世纪没有什么比移动电话的发明更成功的了。自从手机普及之后&#xff0c;人们之间的沟通变得更加便捷&#xff0c;无形中人也失去了很多的自由和私密空间。每个老板都希望下属能够24小时开机&#xff0c;可以随时随地保持联系。 在目前中国的移动…

eSIM(Embedded-SIM)-嵌入式SIM卡

介绍 eSIM概念 eSIM卡&#xff0c;即Embedded-SIM&#xff0c;嵌入式SIM卡。eSIM卡的概念就是将传统SIM卡直接嵌入到设备芯片上&#xff0c;而不是作为独立的可移除零部件加入设备中&#xff0c;用户无需插入物理SIM卡&#xff0c;如同早年的小灵通。这一做法将允许用户更加灵…

A7600C USIM卡接口设计

A7600C支持1.8V和3.0V 的USIM卡。USIM卡的接口电源由模块内部的电压稳压器提供&#xff0c;正常电压值为3V或者1.8V。 1.8V 模式时 USIM 接口电气参数&#xff08;USIM_VDD1.8V&#xff09;如下图&#xff1a; 3.0V 模式时 USIM 接口电气参数&#xff08;USIM_VDD3V&#xff09…

SIM卡的操作系统cos

随着 Ic卡从简单的同步卡发展到异步卡&#xff0c;从简单的 EPROM卡发展到内带微处理器的智能卡(又称CPU卡)&#xff0c;对IC卡的各种要求越来越高。而卡本身所需要的各种管理工作也越来越复杂&#xff0c;因此就迫切地需要有一种工具来解决这一矛盾&#xff0c;而内部带有微处…

Android如何获取SIM卡信息

android 获取sim卡运营商信息 TelephonyManager tm (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口&#xff0c;应用程序使用这个类的方法来获取电话的服务商或者状态。…

【SIM卡】补充省下一些其他的SIM相关问题

4. 如何实现卡槽交换&#xff1f; 有客户因为hw 设计的关系&#xff0c;需要交换卡槽。让原本的卡槽2 的卡变为卡1&#xff0c;卡槽1 的卡变为卡2. 修改方法如下&#xff1a; 4G modem 代码路径&#xff1a; driver\devdrv\usim\src\icc_switchControl_al.c 2/3G modem 代码路径…