
思路
代码
public int maxDiff(int num) {
        String s = String.valueOf(num);
        int len= s.length();
        char[] chars = s.toCharArray();
        String s1="";
        String s2="";
        int max=0,min=0;
        if(len<=1) return 8;
        int index=0;
        //寻找最大数
        while(index<len&&s.charAt(index)==‘9‘){
            index++;
        }
        s1=s.substring(0,index);
        char c=s.charAt(index);
        for(int i=index;i<len;i++){
            if(chars[i]==c){
                chars[i]=‘9‘;
            }
            s1+=chars[i];
        }
        max=Integer.parseInt(s1);
        index=0;
//        System.out.println("max:"+max);
        //寻找最小数
        chars=s.toCharArray();
        if(s.charAt(0)!=‘1‘){
            c=s.charAt(0);
            for(int i=index;i<len;i++){
                if(chars[i]==c){
                    chars[i]=‘1‘;
                }
                s2+=chars[i];
            }
            min=Integer.parseInt(s2);
        }else{
            index=1;
            while(index<len&&(s.charAt(index)==‘0‘||s.charAt(index)==‘1‘)){
                index++;
            }
             //例如 1000  此时index会越界 需要对index进行处理v
            index=Math.min(index,len-1);
            c=s.charAt(index);
            s2=s.substring(0,index);
            for(int i=index;i<len;i++){
                if(chars[i]==c){
                    chars[i]=‘0‘;
                }
                s2+=chars[i];
            }
            min=Integer.parseInt(s2);
        }
//        System.out.println("min:"+min);
        return max-min;
    }
原文:https://www.cnblogs.com/yh-simon/p/12823149.html