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