首页 > 解决方案 > java代码无法将最后一个测试用例作为输入

问题描述

给定一个数字 K 和表示正整数的数字字符串 S,通过对 S 的数字执行最多 K 次交换操作来构建可能的最大数字。

    import java.util.Scanner;
    public class competitive {
    public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int t=s.nextInt();
        while(t>0){
            t--;
            int n=s.nextInt();
            //taking input
            String number=s.next();

            int l=number.length();
            char[] num=new char[l];
            // spliting into char
            for(int i=0; i<l; i++) {
                num[i] = number.charAt(i);
            }
            //converting into integer
            int[] nm=new int[l];
            for(int i=0; i<l; i++){
                nm[i]=Character.getNumericValue(num[i]);
            }
            int[] nm2=new int[l];
            for(int i=0; i<l; i++){
                nm2[i]=nm[i];
            }
            for(int i=0; i<l; i++){
                for(int j=i+1; j<l; j++){
                    if(nm[i]<nm[j]) {
                        int temp =nm[i];
                        nm[i]=nm[j];
                        nm[j]=temp;
                    }
                }
            }
            int x=0;

            //sorting

            for(int i=0; i<n; i++){
                for(int j=0; j<l; j++){
                    if(nm[i]==nm2[j] && j>x){
                        int temp=nm2[j];
                        nm2[j]=nm2[x];
                        nm2[x]=temp;
                        x++;
                        break;
                    }
                }
            }
            for(int i=0; i<l; i++){
                System.out.print(nm2[i]);
            }
            System.out.print("\n");

        }
    }
}
3
4
1234567
3
3435335
2
1034

它不接受输入 1034 如何清除错误。我不知道,但这个错误会出现很长时间,我无法弄清楚为什么

标签: java

解决方案


推荐阅读