class Solution {
public:
int maximum69Number (int num) {
}
};
1323. 6 和 9 组成的最大数字
给你一个仅由数字 6 和 9 组成的正整数 num
。
你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。
请返回你可以得到的最大数字。
示例 1:
输入:num = 9669 输出:9969 解释: 改变第一位数字可以得到 6669 。 改变第二位数字可以得到 9969 。 改变第三位数字可以得到 9699 。 改变第四位数字可以得到 9666 。 其中最大的数字是 9969 。
示例 2:
输入:num = 9996 输出:9999 解释:将最后一位从 6 变到 9,其结果 9999 是最大的数。
示例 3:
输入:num = 9999 输出:9999 解释:无需改变就已经是最大的数字了。
提示:
1 <= num <= 10^4
num
每一位上的数字都是 6 或者 9 。原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2021-06-10 12:41:39
func maximum69Number (num int) int { // 把最高位的6换成9即可 s := strings.Split(strconv.Itoa(num), "") for i := 0; i < len(s); i++ { if s[i] == "6" { s[i] = "9" break } } ans, _ := strconv.Atoi(strings.Join(s, "")) return ans }
golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2021-06-10 12:38:31
func maximum69Number (num int) int { // 把最高位的6换成9即可 s := strconv.Itoa(num) ans := 0 six := 0 for i := 0; i < len(s); i++ { if six == 0 || s[i] == '9' { if s[i] == '6' { six++ } ans = ans * 10 + 9 } else { ans = ans * 10 + int(s[i]-48) } } return ans }