首页 > 其他分享 >Leetcode每日一题 3216. 交换后字典序最小的字符串

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

时间:2024-10-31 14:47:14浏览次数:3  
标签:3216 int 奇偶性 字符串 n1 n2 Leetcode 字典

Leetcode每日一题

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

如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。
解题思路:
从0开始依次比较字符串相邻的两个字符,如果前一个大于后一个则交换并输出,如果不存在这样的情况,输出原串。
代码:

class Solution {
public:
    string getSmallestString(string s) {
        for (int i = 0; i < s.length() - 1; i++) {
            int n1 = s[i] - '0';
            int n2 = s[i + 1] - '0';
            if ((n1 + n2) % 2 == 0 && n1 > n2) {
                swap(s[i], s[i + 1]);
                return s;
            }
        }
        return s;
    }
};

标签:3216,int,奇偶性,字符串,n1,n2,Leetcode,字典
From: https://blog.csdn.net/qq_47229957/article/details/143363794

相关文章

  • leetcode560 和为k的子数组
    leetcode560和为k的子数组packagejava2024_10.day30;importjava.util.HashMap;publicclassleetcode560{/*思路:前缀和+哈希表a[j]-a[i]=k即a[i]=a[j]-k遍历到下标j的时候,先判a[j]==k,相等就ans++,然后查哈希表中a[j]-k的数的个数,然后把a[j]放入哈希......
  • Leetcode刷题Python之3165.不包含相邻元素的子序列的最大和
    提示:利用线段树解决不包含相邻元素的子序列最大和问题。文章目录一、题目描述示例二、解题思路1.思路分析2.线段树的状态设计3.线段树的操作三、代码实现代码详细解释四、总结时间复杂度分析一、题目描述给定一个整数数组nums和一个二维数组queries,其中q......
  • ​Leetcode 166.珠宝的最高价值​ 网格图dp C++实现
    问题:Leetcode166.珠宝的最高价值现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为:只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下角时,停止拿取注意:珠宝的价值都是大于0的。除非这个......
  • LeetCode30.串联所有单词的子串
    题目链接:30.串联所有单词的子串-力扣(LeetCode)1.暴力解法(会超时)由于题目中要判断s中是否有子串符合words,于是可以定义一个hashMap来存储words中的字符串的信息;定义变量len表示words中字符串的数目,strLen表示每个字符串的长度(words中的字符串长度相同);遍历s,每次取出长为len......
  • Leetcode每日一题C之3211. 生成不含相邻零的二进制字符串
    1、执行结果:通过2、显示详情:3、题目:  给你一个正整数 n。如果一个二进制字符串 x 的所有长度为2的子字符串中包含 至少 一个 "1",则称 x 是一个 有效 字符串。返回所有长度为 n 的 有效 字符串,可以以任意顺序排列。示例1:输入: n=3输出: ["010","01......
  • Leetcode每日一题C之3216. 交换后字典序最小的字符串
     1、执行结果:通过2、显示详情:3、题目:  给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5和9、2和4奇偶性相同,而6和9奇偶......
  • LeetCode Hot 100:多维动态规划
    LeetCodeHot100:多维动态规划62.不同路径思路1:动态规划classSolution{public:intuniquePaths(intm,intn){if(m==1||n==1)return1; //dp[i][j]:到达(i,j)的不同路径数vector<vector<int>>dp(m+1,vec......
  • LeetCode Hot 100:技巧
    LeetCodeHot100:技巧136.只出现一次的数字思路1:哈希表classSolution{public:intsingleNumber(vector<int>&nums){unordered_map<int,int>hashMap;for(int&num:nums)hashMap[num]++;for(auto&[x,......
  • 代码随想录算法训练营第六天| leetcode242.有效的字母异位词、leetcode349.两个数组的
    1.leetcode242.有效的字母异位词题目链接:242.有效的字母异位词-力扣(LeetCode)文章链接:代码随想录视频链接:学透哈希表,数组使用有技巧!Leetcode:242.有效的字母异位词哔哩哔哩bilibili自己的思路:首先就是对字符串进行分开成一个一个单独的字母,然后使用列表存储这些数据,再对......
  • 【LeetCode】两数之和、大数相加
    主页:HABUO......