Return true if a binary number either contains all zero or all ones on a single flip.(Python)
<p>I got a program where any binary number is considered and with 1 flip of either 0 or 1, if we get all 0s or all 1s, then it returns true else it will return false. </p>

<p>For e.g. 110 on 1 flip of element 0 returns 111 and it is printed as true.
111 is a binary number which on one flip, is printed as false.
Any possible solution of how to solve it?</p>

<p>Looking forward to the best possible solutions. Appreciate if the solution is written using Python.</p>

<p>This is what i had actually done.</p>

<pre><code>def binary(num, length = 4):
    return format(num, '#0{}b'.format(length + 2)).replace('0b', '')
n = binary(125)
n.count('0')
n.count('1')
if (n.count('0') == 1) or (n.count('1') == 1):
    return true
</code></pre>

<p>Actually I had no idea of how to flip it. </p>

<p>One possible solution:</p>

<p>Get first digit to check against all the others, convert to stirng, because integer is not iterable</p>

<pre><code>first = str(number)[0]
</code></pre>

<p>Loop over all of them, return True if we go through the loop, false if we find a digit that doesn't match</p>

<pre><code>for digit in str(number):
    if digit == first:
        continue
    else:
        return False
return True
</code></pre>

python python-3.x math binary