1432: Max-Difference-You-Can-Get-From-Changing-an-Integer
Medium
table of contents
This problem is just yesterdays problem but with more test cases to check for.
This solution is just yesterdays
solution but with an extra test-case; since to find the max
difference, both numbers cannot have a leading 0
,
it implies that to find the minimum value, we either have to:
code
class Solution {
public:
int maxDiff(int num) {
= to_string(num);
string maxAns = to_string(num);
string minAns int i = 0;
char maxTemp = '-';
char minTemp = '-';
char toReplace;
for (; i < maxAns.size() && (maxTemp == '-' || minTemp == '-'); ++i) {
if (maxTemp == '-' && maxAns[i] != '9') {
= maxAns[i];
maxTemp [i] = '9';
maxAns} else if (maxTemp == maxAns[i]) {
[i] = '9';
maxAns}
if (minTemp == '-' && i == 0 && minAns[i] != '1') {
= minAns[i];
minTemp = '1';
toReplace [i] = toReplace;
minAns} else if (minTemp == '-' && minAns[i] != '1' && minAns[i] != '0') {
= minAns[i];
minTemp = '0';
toReplace [i] = toReplace;
minAns} else if (minTemp == minAns[i]) {
[i] = toReplace;
minAns}
}
for (; i < maxAns.size(); ++i) {
if (maxTemp == maxAns[i]) {
[i] = '9';
maxAns}
if (minTemp == minAns[i]) {
[i] = toReplace;
minAns}
}
return stoi(maxAns) - stoi(minAns);
}
};