字节青训入营考核十五题-Java-小U的数字插入问题
问题
小U手中有两个数字 a 和 b。第一个数字是一个任意的正整数,而第二个数字是一个非负整数。她的任务是将第二个数字 b 插入到第一个数字 a 的某个位置,以形成一个最大的可能数字。
你需要帮助小U找到这个插入位置,输出插入后的最大结果。
测试样例
样例1:
输入:
a = 76543, b = 4
输出:765443
样例2:
输入:
a = 1, b = 0
输出:10
样例3:
输入:
a = 44, b = 5
输出:544
样例4:
输入:
a = 666, b = 6
输出:6666
思路
-
数字转换为字符串:
- 由于数字需要逐位插入,我们将数字 aaa 和 bbb 转换为字符串,以便使用字符串操作实现插入。
-
模拟插入:
- 遍历所有可能的插入位置(从字符串开头到结尾之后的每个位置)。
- 在每个插入位置生成新的字符串,并将 bbb 插入到当前位置。
-
比较大小:
- 维护一个变量存储目前最大的结果(初始化为空字符串)。
- 每次生成新的字符串后,比较新字符串的数值是否比当前最大值大。如果大,则更新最大值。
-
返回最大结果:
- 遍历完成后,将最终找到的最大结果转换为整数返回。
-
solution(76543, 4)
:a = 76543
,b = 4
- 将
4
插入到76543
的不同位置后,生成的数字为:476543
,746543
,764543
,765443
,765434
。 - 最大值为
765443
。
-
solution(1, 0)
:a = 1
,b = 0
- 将
0
插入到1
的不同位置后,生成的数字为:01
,10
。 - 最大值为
10
。
-
solution(44, 5)
:a = 44
,b = 5
- 将
5
插入到44
的不同位置后,生成的数字为:545
,454
。 - 最大值为
545
。
-
solution(666, 6)
:a = 666
,b = 6
- 将
6
插入到666
的不同位置后,生成的数字为:6666
,6666
,6666
,6666
。 - 最大值为
6666
。
代码
public class Main {
public static int solution(int a, int b) {
// 将整数a转换为字符串以便操作
String aStr = String.valueOf(a);
String bStr = String.valueOf(b);
// 初始化最大结果
String maxResult = "";
// 遍历a的每个插入位置
for (int i = 0; i <= aStr.length(); i++) {
// 在第i位置插入b
String current = aStr.substring(0, i) + bStr + aStr.substring(i);
// 更新最大值
if (maxResult.isEmpty() || Integer.parseInt(current) > Integer.parseInt(maxResult)) {
maxResult = current;
}
}
// 返回结果转换为整数
return Integer.parseInt(maxResult);
}
public static void main(String[] args) {
System.out.println(solution(76543, 4) == 765443);
System.out.println(solution(1, 0) == 10);
System.out.println(solution(44, 5) == 544);
System.out.println(solution(666, 6) == 6666);
}
}
-
方法
solution(int a, int b)
:a
和b
是输入的两个整数。- 首先将
a
和b
转换成字符串类型,方便在a
中进行插入操作。 - 然后通过遍历
a
字符串的每个位置,将b
插入其中,并计算出可能得到的最大整数。
-
主要操作:
String.valueOf(a)
和String.valueOf(b)
用来将整数a
和b
转换为字符串,以便进行插入操作。maxResult
用来保存当前的最大结果。- 使用一个
for
循环,遍历a
的每个字符的位置(从0
到aStr.length()
),在每个位置尝试插入b
,并检查新生成的数字是否比当前的maxResult
大。 - 每次插入后通过
Integer.parseInt(current)
转换字符串为整数,比较得到的值与当前的maxResult
,并更新maxResult
。
-
结果返回:
- 最终返回
maxResult
转换为整数。
- 最终返回
-
主方法
main(String[] args)
:- 测试了几个不同的例子,打印出
solution
方法的返回结果,验证插入操作的正确性。
- 测试了几个不同的例子,打印出
提交结果
原文地址:https://blog.csdn.net/qq_54813250/article/details/144990516
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!