题目描述
对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211,原来的正整数10就被拆成了0和1。
现给定一个按如上规则得到的打乱字符的字符串,请将其还原成连续正整数序列,并输出序列中最小的数字。
输入描述
输入一行,为打乱字符的字符串和正整数序列的长度,两者间用空格分隔,字符串长度不超过200,正整数不超过1000,保证输入可以还原成唯一序列。
输出描述
输出一个数字,为序列中最小的数字。
用例1
输入
19801211 5
输出
8
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] strs = in.nextLine().split(" ");
String sortedStr = sortStr(strs[0]);
int num = Integer.valueOf(strs[1]);
StringBuilder builder = new StringBuilder();
for(int i = 1; i <= 1000; i++){
for(int j = i; j < num + i; j++){
builder.append(j);
}
String winStr = sortStr(builder.toString());
if(winStr.equals(sortedStr)){
System.out.println(i);
break;
}
builder = new StringBuilder();
}
}
public static String sortStr(String str){
char[] chars = str.toCharArray();
Arrays.sort(chars);
return new String(chars);
}
}