/*
每次从尾部开始操作,遍历每个元素,只要发生了置换元素,则从头开始,直到不能发生置换为止
*/
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t = in.nextInt();
for (int i = 0; i < t; i++) {
String s = in.next();
char[] arr = s.toCharArray();
while (true) {
// 用一个布尔值,标识每次操作有没有发生置换
boolean isCharge = false;
// 每次都从尾部开始
int p = arr.length - 1;
while (p > 0) {
char c1 = arr[p];
char c2 = arr[p - 1];
int i1 = c1 - '0';// char转int: char - '0'
if (i1 > 0) {// 题目规定操作数要大于0才能操作
i1 = i1 - 1;
int i2 = c2 - '0'; // char转int
if (i1 > i2) {// 满足置换条件
isCharge = true;
arr[p] = (char)(i2 + '0');// int转char (char)(int + '0')
arr[p - 1] = (char)(i1 + '0');// int转char (char)(int + '0')
}
}
p--;
}
if (!isCharge) {// 如果没有发生过置换,则标识当前字符已达到最大
break;
}
}
System.out.println(new String(arr));
}
}
}



京公网安备 11010502036488号