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

宿州市做网站的公司影视文化传媒公司网站建设

宿州市做网站的公司,影视文化传媒公司网站建设,上海网站开发薪资,汇编做网站【LetMeFly】3106.满足距离约束且字典序最小的字符串:模拟(贪心) 力扣题目链接:https://leetcode.cn/problems/lexicographically-smallest-string-after-operations-with-constraint/ 给你一个字符串 s 和一个整数 k 。 定义函…

【LetMeFly】3106.满足距离约束且字典序最小的字符串:模拟(贪心)

力扣题目链接:https://leetcode.cn/problems/lexicographically-smallest-string-after-operations-with-constraint/

给你一个字符串 s 和一个整数 k

定义函数 distance(s1, s2) ,用于衡量两个长度为 n 的字符串 s1s2 之间的距离,即:

  • 字符 'a''z'循环 顺序排列,对于区间 [0, n - 1] 中的 i ,计算所有「 s1[i]s2[i] 之间 最小距离」的

例如,distance("ab", "cd") == 4 ,且 distance("a", "z") == 1

你可以对字符串 s 执行 任意次 操作。在每次操作中,可以将 s 中的一个字母 改变 任意 其他小写英文字母。

返回一个字符串,表示在执行一些操作后你可以得到的 字典序最小 的字符串 t ,且满足 distance(s, t) <= k

 

示例 1:

输入:s = "zbbz", k = 3
输出:"aaaz"
解释:在这个例子中,可以执行以下操作:
将 s[0] 改为 'a' ,s 变为 "abbz" 。
将 s[1] 改为 'a' ,s 变为 "aabz" 。
将 s[2] 改为 'a' ,s 变为 "aaaz" 。
"zbbz" 和 "aaaz" 之间的距离等于 k = 3 。
可以证明 "aaaz" 是在任意次操作后能够得到的字典序最小的字符串。
因此,答案是 "aaaz" 。

示例 2:

输入:s = "xaxcd", k = 4
输出:"aawcd"
解释:在这个例子中,可以执行以下操作:
将 s[0] 改为 'a' ,s 变为 "aaxcd" 。
将 s[2] 改为 'w' ,s 变为 "aawcd" 。
"xaxcd" 和 "aawcd" 之间的距离等于 k = 4 。
可以证明 "aawcd" 是在任意次操作后能够得到的字典序最小的字符串。
因此,答案是 "aawcd" 。

示例 3:

输入:s = "lol", k = 0
输出:"lol"
解释:在这个例子中,k = 0,更改任何字符都会使得距离大于 0 。
因此,答案是 "lol" 。

 

提示:

  • 1 <= s.length <= 100
  • 0 <= k <= 2000
  • s 只包含小写英文字母。

解题方法:贪心

首先需要明确,越靠前的位置越重要。所以要不惜一切代价将前面字符尽可能地变小

字符变小的方式有两种:

  1. 往小的方向变。每消耗一次操作次数字符就会变小一点,直到变成了a为止。
  2. 往大的方向变。这样做的前提是剩下的操作次数足够让当前字符变大到z再变成a

因此贪心思路出来了:

在还剩有操作次数时,从前到后开始变化字符:

对于当前字符,如果剩余操作次数足够往大的方向变到a,且这样做比往小的方向变到a所需次数更少,则往大的方向变到a为止;

否则,往小的方向变,直到变到a或用完了操作次数为止。

  • 时间复杂度 O ( l e n ( s ) ) O(len(s)) O(len(s))
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
class Solution {
public:string getSmallestString(string s, int k) {for (char &c : s) {int left = c - 'a', right = 'z' - c + 1;if (k >= right && right < left) {c = 'a';k -= right;}else {int move = min(left, k);c -= move;k -= move;}if (k == 0) {break;}}return s;}
};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/140758056

http://www.yayakq.cn/news/418296/

相关文章:

  • 淮北矿业集团工程建设公司网站十大软件排行榜下载
  • 青海网页设计制作随州网站建设优化推广渠道
  • 商城类的网站怎么做石家庄货运做网站公司
  • 服务器ip做网站发布网站域名设置
  • 网页怎么做网站地图wordpress 流量
  • 物流网站公司天河网站建设多少钱
  • 河北省建设工程质量监督网站建设银行网站无法转账
  • 最简单的网站开发国际化法国企业网站建设
  • 营销公关是什么意思做搜索引擎优化对网站有哪些好处
  • 内蒙古建设工程社保中心网站大连口碑最好的装修公司
  • aspnet校友录网站开发网站怎么适配移动端
  • 广州市外贸网站建设营销型网站的优点
  • 广告网站建设网网站建设的后期维护问题
  • 做网站的程序源码灯具做外贸的网站有哪些
  • 网络推广建议seo权重优化
  • 网站建设系统哪家好海南网站seo
  • 专门 做鞋子团购的网站有哪些免费简历模板制作网站
  • 网站维护内容及费用设计网站平台风格
  • 江门企业做网站网站规划文字说明
  • 网站建设服务器对比电脑上如何卸载wordpress
  • 余姚做网站设计的公司服装网站建设公司
  • 宁波网站建设服务提供商做网站头片的高清图
  • 原创网站开发流程个人设计作品集
  • 南山做网站的公司广州市住房和城乡建设局
  • 木渎网站建设wordpress 云空间 防盗链
  • 网站建设教学后记怎样用网站模板做网站
  • 北京电商网站排行python 网站开发流程图
  • 网站后端开发软件手表网站 二手
  • 绍兴住房和城乡建设厅网站首页国内营销推广渠道
  • 特价网站建设官网如何建设电影网站