我的博客

5315. 6 和 9 组成的最大数字 leetcode 周赛 172 - python

目录
  1. 解答

https://leetcode-cn.com/contest/weekly-contest-172/problems/maximum-69-number/

给你一个仅由数字 6 和 9 组成的正整数 num

你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。

请返回你可以得到的最大数字。

示例 1:

1
2
3
4
5
6
7
8
输入:num = 9669
输出:9969
解释:
改变第一位数字可以得到 6669 。
改变第二位数字可以得到 9969 。
改变第三位数字可以得到 9699 。
改变第四位数字可以得到 9666 。
其中最大的数字是 9969 。

示例 2:

1
2
3
输入:num = 9996
输出:9999
解释:将最后一位从 6 变到 9,其结果 9999 是最大的数。

示例 3:

1
2
3
输入:num = 9999
输出:9999
解释:无需改变就已经是最大的数字了。

提示:

  • 1 <= num <= 10^4
  • num 每一位上的数字都是 6 或者 9 。

解答

直接遍历把第一个 6 改成 9 就行。

用 python 很方便,但是需要注意 python 的字符串是不可变的,需要转成 list 方便操作(当然我是从 int 转成 str 再转成了 list)

1
2
3
4
5
6
7
8
class Solution:
def maximum69Number (self, num: int) -> int:
x = list(str(num))
for i in range(len(x)):
if x[i] == '6':
x[i] = '9'
break
return int(''.join(x))

评论无需登录,可以匿名,欢迎评论!