学习记录
2025.3.21
题目:
思路:
遍历。
解题思路:
1.计算字符串长度:int len = strlen(s);
2.单次遍历:
遍历字符串的每个字符(从第一个到倒数第二个)。
找到第一个满足交换条件的相邻字符对。
交换这两个字符,并立即终止遍历(break)。
3.返回结果:返回修改后的字符串(若无交换,则返回原字符串)
代码:
char* getSmallestString(char* s) {int len = strlen(s);for (int i = 0; i + 1 < len; i++) {if (s[i] > s[i + 1] && (s[i] % 2 == s[i + 1] % 2)) {char tmp = s[i];s[i] = s[i + 1];s[i + 1] = tmp;break;}}return s;
}
class Solution {public String getSmallestString(String s) {char[] arr = s.toCharArray();for (int i = 0; i + 1 < arr.length; i++) {if (arr[i] > arr[i + 1] && arr[i] % 2 == arr[i + 1] % 2) {char temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;break;}}return new String(arr);}
}