这几场笔试被自己菜吐了,场上一直想着怎么处理字符串,下来思考发现貌似可以用递归处理,实现了一下,请教大佬们这个有没有说法:public static long findNextGoodNumber(long num){String s = String.valueOf(num);int n = s.length();//获取最高位的基数long base = (long) Math.pow(10, n-1);Set<Character>set = new HashSet<>();char[] arr = s.toCharArray();//构造新的数long x = 0;for(int i = 0 ; i < n;i++){if(!set.contains(arr[i])){//到i为止的数字没有重复过x += ((arr[i]-'0') * base);base /= 10;set.add(arr[i]);}else{//即便进位处理交给下一轮迭代x += ((arr[i]-'0' + 1) * base);return findNextGoodNumber(x);}}//x是好数return x;}