第一行输入一个整数
,表示测试用例数量。
此后
行,每行输入一个不含前导零的数字字符串
,满足
。
保证所有测试用例的
之和不超过
。
对于每个测试用例,在一行上输出通过任意次数操作后能够得到的字典序最大的字符串。
6 19 1709 11555 51476 9876543210 5891917899
81 6710 33311 55431 9876543210 7875567711
以
为例:
![]()
![]()
![]()
;
![]()
![]()
![]()
,得到答案
。
再以
为例,可按如下序列操作:
![]()
![]()
![]()
;
![]()
![]()
![]()
;
![]()
![]()
![]()
,最终得到答案
。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
const t = Number(await readline());
const cases = Array(t);
for (let i = 0; i < t; i++) {
let s = await readline();
let arr = s.split('').map(Number);
const n = arr.length;
// console.log(arr)
while (true) {
let stop = true;
for (let i = n-1; i > 0; i--) {
if (arr[i-1] < arr[i] - 1) {
arr[i]--;
[arr[i-1], arr[i]] = [arr[i], arr[i-1]];
stop = false;
}
}
if (stop) {
break;
}
}
console.log(arr.join(''));
}
}()