1323.6和9组成的最大数字
1323.1 题目
给你一个仅由数字 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
。
1323.2 题解
替换字符串
// 方法一:替换字符串
// 将数字转换为字符串
// 遍历找到第一个出现的 6 并将其替换为 9
// 转回数字后返回
static int Maximum69Number1(int num)
{
string numStr = num.ToString(); // 将数字转换为字符串
int index = numStr.IndexOf('6'); // 找到第一个出现的6的索引位置
if (index != -1) // 如果找到了6
{
numStr = numStr.Remove(index, 1).Insert(index, "9"); // 将第一个6替换为9
}
return int.Parse(numStr); // 将修改后的字符串转换为整数并返回
}
1323.3 代码
using Console = System.Console;
using System;
class Program
{
static void Main()
{
#region 题目
// 给你一个仅由数字 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 。
#endregion
#region 测试
// 示例 1
int num1 = 9669;
int result1_1 = Maximum69Number1(num1);
Console.WriteLine($"示例1 方法1 输出:{result1_1}");
// 示例 2
int num2 = 9996;
int result2_1 = Maximum69Number1(num2);
Console.WriteLine($"示例2 方法1 输出:{result2_1}");
// 示例 3
int num3 = 9999;
int result3_1 = Maximum69Number1(num3);
Console.WriteLine($"示例3 方法1 输出:{result3_1}");
#endregion
}
#region 答案
// 方法一:替换字符串
// 将数字转换为字符串
// 遍历找到第一个出现的 6 并将其替换为 9
// 转回数字后返回
static int Maximum69Number1(int num)
{
string numStr = num.ToString(); // 将数字转换为字符串
int index = numStr.IndexOf('6'); // 找到第一个出现的6的索引位置
if (index != -1) // 如果找到了6
{
numStr = numStr.Remove(index, 1).Insert(index, "9"); // 将第一个6替换为9
}
return int.Parse(numStr); // 将修改后的字符串转换为整数并返回
}
#endregion
}
1323.4 运行结果
示例1 方法1 输出:9969
示例2 方法1 输出:9999
示例3 方法1 输出:9999
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com