<p>You are given an integer <code>num</code>. You will apply the following steps exactly <strong>two</strong> times:</p>

<ul>
	<li>Pick a digit <code>x (0 &lt;= x &lt;= 9)</code>.</li>
	<li>Pick another digit <code>y (0 &lt;= y &lt;= 9)</code>. The digit <code>y</code> can be equal to <code>x</code>.</li>
	<li>Replace all the occurrences of <code>x</code> in the decimal representation of <code>num</code> by <code>y</code>.</li>
	<li>The new integer <strong>cannot</strong> have any leading zeros, also the new integer <strong>cannot</strong> be 0.</li>
</ul>

<p>Let <code>a</code> and <code>b</code> be the results of applying the operations to <code>num</code> the first and second times, respectively.</p>

<p>Return <em>the max difference</em> between <code>a</code> and <code>b</code>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> num = 555
<strong>Output:</strong> 888
<strong>Explanation:</strong> The first time pick x = 5 and y = 9 and store the new integer in a.
The second time pick x = 5 and y = 1 and store the new integer in b.
We have now a = 999 and b = 111 and max difference = 888
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> num = 9
<strong>Output:</strong> 8
<strong>Explanation:</strong> The first time pick x = 9 and y = 9 and store the new integer in a.
The second time pick x = 9 and y = 1 and store the new integer in b.
We have now a = 9 and b = 1 and max difference = 8
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= num &lt;= 10<sup>8</sup></code></li>
</ul>

class Solution {
public:
    int maxDiff(int p) {
        int num = p;
        vector<int> a;
        while(num > 0){
            a.push_back(num % 10);
            num /= 10;
        }
        reverse(a.begin(), a.end());
        int n = a.size();
        int y1 = -1, y2 = -1;
        for(int i = 0; i < n; i++){
            if(a[i] != 9){
                y1 = a[i];
                break;
            }
        }
        bool flag = false;
        if(a[0] != 1){ y2 = a[0]; flag = true; }
        else{
            for(int i = 1; i < n; i++){
                if(a[i] != 0 && a[i] != 1){
                    y2 = a[i];
                    break;
                }
            }
        }
        vector<int> b = a;
        vector<int> c = a;
        for(int i = 0; i < n; i++){
            if(b[i] == y1){
                b[i] = 9;
            }
        }
        if(flag){
            for(int i = 0; i < n; i++){
                if(a[i] == y2){
                    c[i] = 1;
                }
            }
        }
        else{
            for(int i = 1; i < n; i++){
                if(a[i] == y2){
                    c[i] = 0;
                }
            }
        }
        string s1 = "", s2 = "";
        for(int i = 0; i < n; i++){
            s1 += to_string(b[i]);
            s2 += to_string(c[i]);
        }
        int r1 = stoi(s1);
        int r2 = stoi(s2);
        if(y1 == -1){ r1 = p; }
        if(y2 == -1){ r2 = p; }
        return abs(r1 - r2);
    }
};
9100