题目描述
给出一个正整数N,每次可以移动2个相邻数位上的数字,最多移动K次,得到一个新的正整数。求这个新的正整数的最大值。
import java.util.Scanner;
public class Oj2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String s = sc.next();
int k = sc.nextInt();
char[] cc = s.toCharArray();
char temp;
for (int i = 0; i <cc.length&&k!=0; i++) {//循环次数取决于k的大小和
//当顺序增大时1234567将取决于数组大小
int t=i;
for (int j = t+1; j <= i+k&&k!=0; j++) //找到k以内最大数的位置
if(cc[t]<cc[j])
t=j;
for (int z =t ; z>i; z--) {//将步数k以内的最大数交换到前面
temp = cc[z];
cc[z] = cc[z-1];
cc[z-1] = temp;
}
k-=(t-i);//减去交换次数
}
for(char c:cc)
System.out.print(c);
System.out.println();
}
}
}