我试图解决来自Geeksforgeeks的最大整数值问题。问题说明如下:给定一个由数字 (0-9) 组成的字符串 S,您的任务是通过在遍历时在数字之间放置“*”或“+”运算符来找到可以从字符串中获得的最大值从字符串的左到右,一次选择一个数字。输入:输入的第一行包含 T 表示测试用例的数量。T 测试用例如下。每个测试用例包含一行表示字符串的输入。输出:对于每个测试用例,打印获得的最大值。这就是我所做的:class GFG { public static void sort(int[] numbers) { int n = numbers.length; for (int i = 1; i < n; ++i) { int key = numbers[i]; int j = i - 1; while (j >= 0 && numbers[j] > key) { numbers[j + 1] = numbers[j]; j = j -1 ; } numbers[j + 1] = key; } System.out.println(numbers.length - 1); } public static void main (String[] args) { Scanner sc = new Scanner(System.in); int testCases = sc.nextInt(); int [] maxNum; for(int i = 0; i< testCases; i++) { String numbers = sc.nextLine(); char[] cNumbers = numbers.toCharArray(); maxNum = new int [cNumbers.length]; for(int j = 0; j + 1 < cNumbers.length; j++) { int sum = 0; int mult = 0; sum = cNumbers[j] + cNumbers[j + 1]; mult = cNumbers[j] * cNumbers[j + 1]; int maxNumber = Math.max(sum, mult); maxNum[i] = maxNumber; } sort(maxNum); } }}输入示例:2 01230 891 我的输出:-1 4 正确输出:9 73我的代码有什么问题?!
添加回答
举报
0/150
提交
取消