力扣每日一题 3216. 交换后字典序最小的字符串

给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性的数字后,返回可以得到的字典序最小的字符串。

如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。

这个题目非常简单,就直接从前往后遍历找到相邻的可以交换且前面比后面大的数字就可以了。因为要字典序最小,而字典序是从前往后进行大小比较,所以先交换的肯定是字段序最小的。

cpp 复制代码
class Solution {
public:
    string getSmallestString(string s) {
        int len = s.length();
        for (int i = 0; i < len-1; ++i)
        {
            if (s[i] > s[i+1] && s[i]%2 == s[i+1]%2)
            {
                swap(s[i], s[i+1]);
                break;
            }
        }
        return s;
    }
};

时间复杂度O(n),空间复杂度O(1)。

相关推荐
FMRbpm几秒前
树的练习7--------LCR 052.递增顺序搜索树
数据结构·c++·算法·leetcode·深度优先·新手入门
技术民工之路5 分钟前
MATLAB线性方程组,运算符、inv()、pinv()全解析
线性代数·算法·matlab
一起努力啊~7 分钟前
算法刷题--双指针法
算法
Coovally AI模型快速验证15 分钟前
从“单例模仿”到“多面融合”,视觉上下文学习迈向“团队协作”式提示融合
人工智能·学习·算法·yolo·计算机视觉·人机交互
明洞日记26 分钟前
【软考每日一练007】位图计算与内存管理深度全解
c++·算法·ai·操作系统·进程
敲敲了个代码28 分钟前
前端指纹技术是如何实现的?(Canvas、Audio、硬件API 核心原理解密)
前端·javascript·学习·算法·面试·web
学编程就要猛29 分钟前
算法:5.在排序数组中查找元素的第⼀个和最后⼀个位置
算法
夏鹏今天学习了吗36 分钟前
【LeetCode热题100(84/100)】乘积最大子数组
算法·leetcode·职场和发展
Yupureki43 分钟前
《算法竞赛从入门到国奖》算法基础:入门篇-递归初阶
c语言·开发语言·数据结构·c++·算法·visual studio
a3535413821 小时前
牛顿迭代法中的雅克比矩阵几何意义
线性代数·算法