力扣(LeetCode)1625. 执行操作后字典序最小的字符串(C++)

news/2025/2/28 6:36:53/

枚举

长度为 n 的字符串,最多轮转 n 次。一个数位最多 10 个数字,所以奇数位最多累加 10 次。由于字符串长度 n 是偶数,若轮转单位 b 是偶数,偶数位只会在偶数位,所以无法执行累加;若轮转单位 b 为奇数,偶数位也可以变成奇数位,偶数位最多累加 10 次。

轮转次数 n ,奇数位累加次数 10,偶数位累加次数 10,每次操作改变所有数位共 n 位,四者是互斥关系,时间复杂度 O(n2×102)O(n ^ 2 \times 10^2)O(n2×102)

提示:本文算法是最暴力的枚举,这是由于字符串长度在 100 以内。还有很多性质可以分析,算法可以进一步优化。

class Solution {
public:string findLexSmallestString(string s, int a, int b) {// 最多轮转 n 次,每次轮转 b 位 // 奇数位最多累加 10 次,每次累加 a // 若 b 为偶数,偶数位无法执行累加;若 b 为奇数,偶数位最多累加 10 次, 每次累加 a。int n = s.size();string ans = s;int max_k = (b & 1) * 9 + 1;// 从不累加,到累加for (int i = 0; i < n; i ++) {for (int j = 0; j < 10; j ++) {for (int k = 0; k < max_k; k ++) {string t = s.substr((i * b) % n, n) + s.substr(0, (i * b) % n); // 轮转for (int p1 = 1; p1 < n; p1 += 2) {t[p1] = (t[p1] - '0' + j * a) % 10 + '0'; // 按位累加}for (int p2 = 0; p2 < n; p2 += 2) {t[p2] = (t[p2] - '0' + k * a) % 10 + '0';}ans = min(ans, t);}}}return ans;}
};
  1. 时间复杂度 : O(n2×102)O(n ^ 2 \times 10^2)O(n2×102)nnn 是字符串的长度,轮转次数 n ,奇数位累加次数 10,偶数位累加次数 10,每次操作改变所有数位共 n 位,四者是互斥关系,时间复杂度 O(n2×102)O(n ^ 2 \times 10^2)O(n2×102)
  2. 空间复杂度 : O(n)O(n)O(n) ,临时字符串 ttt 的空间复杂度 O(n)O(n)O(n)

AC

ac

致语

  • 理解思路很重要
  • 读者有问题请留言,清墨看到就会回复的。

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

相关文章

Python 面向对象编程——类定义与对象

<类定义与对象声明> 面向对象最重要的概念就是类&#xff08;Class&#xff09;和实例&#xff08;Instance&#xff09;&#xff0c;必须牢记类是抽象的模板&#xff0c;比如Student类&#xff0c;而实例是根据类创建出来的一个个具体的“对象”&#xff0c;每个对象都拥…

字节测试工程师悄悄告诉我的软件测试、测试开发常用的测试策略与测试手段

目录 前言 测试策略的关注重点 测试策略主要内容 总体测试策略 初级版本测试策略 跟踪测试执行 版本质量评估 后续版本测试策略 发布质量评估 测试手段 前言 测试策略是指在特定环境约束之下&#xff0c;描述软件开发周期中关于测试原则、方法、方式的纲要&#xff…

【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(4)

目录 写在前面&#xff1a; 题目&#xff1a;P1149 [NOIP2008 提高组] 火柴棒等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 解题思路&#xff1a; …

用 ChatGPT 辅助学好机器学习

文章目录一、前言二、主要内容&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 探索更高效的学习方法可能是有志者共同的追求&#xff0c;用好 ChatGPT&#xff0c;先行于未来。 作为一个人工智能大语言模型&#xff0c;ChatGPT 可以在帮助初…

【文心一言】什么是文心一言,如何获得内测和使用方法。

文心一言什么是文心一言怎么获得内测资格接下来就给大家展示一下文学创作商业文案创作数理逻辑推算中文理解多模态生成用python写一个九九乘法表写古诗前言&#xff1a; &#x1f3e0;个人主页&#xff1a;以山河作礼。 &#x1f4dd;​&#x1f4dd;:本文章是帮助大家了解文心…

基于 Apache Flink 的实时计算数据流业务引擎在京东零售的实践和落地

摘要&#xff1a;本文整理自京东零售-技术研发与数据中心张颖&闫莉刚在 ApacheCon Asia 2022 的分享。内容主要包括五个方面&#xff1a; 京东零售实时计算的现状实时计算框架场景优化&#xff1a;TopN场景优化&#xff1a;动线分析场景优化&#xff1a;FLINK 一站式机器学…

Shader基础

参考文章:Unity着色器介绍 Shader基础 Properties 声明格式 [optional: attribute] name(“display text in Inspector”, type name) default value 属性类型 Color&#xff1a;颜色属性&#xff0c;表示 RGBA 颜色值。Range&#xff1a;范围属性&#xff0c;表示一个在…

docker版jxTMS使用指南

jxTMS是以低成本快速定制为核心诉求的、SaaS模式的业务管理系统二次开发平台&#xff0c;可参考&#xff1a;jxTMS简介。建议使用前先阅读&#xff1a;jxTMS设计思想&#xff0c;以更好的使用jxTMS。 本次发布为docker版本&#xff0c;本系列文章主要介绍docker版本的简单使用…