这几场笔试被自己菜吐了,场上一直想着怎么处理字符串,下来思考发现貌似可以用递归处理,实现了一下,请教大佬们这个有没有说法:public static long findNextGoodNumber(long num){ String s = String.valueOf(num); int n = s.length(); //获取最高位的基数 long base = (long) Math.pow(10, n-1); Setset = new HashSet<>(); char[] arr = s.toCharArray(); //构造新的数 long x = 0; for(int i = 0 ; 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; }#笔试##蚂蚁#