题目来源:
leetcode题目,网址:2566. 替换一个数字后的最大差值 - 力扣(LeetCode)
解题思路:
将从左到右第一个非 9 数字全部修改为 9 以得到最大值。将从左到右第一个数字全部修改为 0 以得到最小值,然后计算差值并返回即可。
解题代码:
class Solution {public int minMaxDifference(int num) {String res=Integer.toString(num);System.out.println(res);String max=getMax(res);String min=getMin(res);return Integer.parseInt(max)-Integer.parseInt(min);}public String getMin(String sb){StringBuffer res=new StringBuffer();char c=sb.charAt(0);for(int i=0;i<sb.length();i++){if(sb.charAt(i)==c){res.append('0');}else{res.append(sb.charAt(i));}}return res.toString();}public String getMax(String sb){StringBuffer res=new StringBuffer();char c=' ';for(int i=0;i<sb.length();i++){char temp=sb.charAt(i);if(c==' '){if(temp=='9'){res.append(temp);}else{c=temp;res.append('9');}}else{if(temp==c){res.append('9');}else{res.append(temp);}}}return res.toString();}
}
总结:
无官方题解。
sneakily adv.鬼鬼祟祟地