力扣刷题记录
暴力
3216. 交换后字典序最小的字符串
思路
如果两个字符串长度相同,则第一个不同字符更小的那个字典序更小
因此只要从左往右遍历,因为题中说我们只能交换相邻字符,所以当相邻两个字符后一个更小,且两个字符是相同的奇偶性时,进行交换
代码
func getSmallestString(s string) string {num := []int32(s)for i := 0; i < len(num) - 1; i++{if num[i] > num[i+1] && num[i] % 2 == num[i+1] % 2{num[i], num[i+1] = num[i+1], num[i]break}}return string(num)
}
时间复杂度:O(n)
空间复杂度:O(n)