<p>You are given an integer <code>num.</code> <strong>Rearrange</strong> the digits of <code>num</code> such that its value is <strong>minimized</strong> and it does not contain <strong>any</strong> leading zeros.</p>

<p>Return <em>the rearranged number with minimal value</em>.</p>

<p>Note that the sign of the number does not change after rearranging the digits.</p>

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

<pre>
<strong>Input:</strong> num = 310
<strong>Output:</strong> 103
<strong>Explanation:</strong> The possible arrangements for the digits of 310 are 013, 031, 103, 130, 301, 310. 
The arrangement with the smallest value that does not contain any leading zeros is 103.
</pre>

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

<pre>
<strong>Input:</strong> num = -7605
<strong>Output:</strong> -7650
<strong>Explanation:</strong> Some possible arrangements for the digits of -7605 are -7650, -6705, -5076, -0567.
The arrangement with the smallest value that does not contain any leading zeros is -7650.
</pre>

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

<ul>
	<li><code>-10<sup>15</sup> &lt;= num &lt;= 10<sup>15</sup></code></li>
</ul>

class LargestNumber(str):
    def __lt__(x, y):
        return x + y > y + x

class SmallestNumber(str):
    def __lt__(x, y):
        return y + x > x + y
class Solution:
    def smallestNumber(self, num: int) -> int:
        if num == 0:
            return 0
        arr = [0 for _ in range(10)]
        negative = False
        if num < 0:
            negative = True
        for n in str(num):
            if n.isdigit():   
                arr[int(n)] += 1

        new_num = ''
        if not negative:
            zero = ''.join('0' for _ in range(arr[0]))
            zna = False
            for i in range(1, 10):
                for j in range(arr[i]):
                    new_num += str(i)
                    if len(new_num) > 0 and not zna:
                        new_num += zero
                        zna = True

        else: 
            for i in range(9, -1, -1):
                for j in range(arr[i]):
                    new_num += str(i)
            new_num = '-' + new_num

        return int(new_num)
        
        
34