Python: Next bigger number by rearranging the digits of a given number
Python Lambda: Exercise-25 with Solution
Write a Python program to create the next bigger number by rearranging the digits of a given number.
Sample Solution:
Python Code :
def rearrange_bigger(n):
#Break the number into digits and store in a list
nums = list(str(n))
for i in range(len(nums)-2,-1,-1):
if nums[i] < nums[i+1]:
z = nums[i:]
y = min(filter(lambda x: x > z[0], z))
z.remove(y)
z.sort()
nums[i:] = [y] + z
return int("".join(nums))
return False
n = 12
print("Original number:",n)
print("Next bigger number:",rearrange_bigger(n))
n = 10
print("\nOriginal number:",n)
print("Next bigger number:",rearrange_bigger(n))
n = 201
print("\nOriginal number:",n)
print("Next bigger number:",rearrange_bigger(n))
n = 102
print("\nOriginal number:",n)
print("Next bigger number:",rearrange_bigger(n))
n = 445
print("\nOriginal number:",n)
print("Next bigger number:",rearrange_bigger(n))
Sample Output:
Original number: 12 Next bigger number: 21 Original number: 10 Next bigger number: False Original number: 201 Next bigger number: 210 Original number: 102 Next bigger number: 120 Original number: 445 Next bigger number: 454
Visualize Python code execution:
The following tool visualize what the computer is doing step-by-step as it executes the said program:
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to find numbers within a given range where every number is divisible by every digit it contains.
Next: Write a Python program to find the list with maximum and minimum length using lambda.
What is the difficulty level of this exercise?
Test your Python skills with w3resource's quiz
Python: Tips of the Day
Python: Cache results with decorators
There is a great way to cache functions with decorators in Python. Caching will help save time and precious resources when there is an expensive function at hand.
Implementation is easy, just import lru_cache from functools library and decorate your function using @lru_cache.
from functools import lru_cache @lru_cache(maxsize=None) def fibo(a): if a <= 1: return a else: return fibo(a-1) + fibo(a-2) for i in range(20): print(fibo(i), end="|") print("\n\n", fibo.cache_info())
Output:
0|1|1|2|3|5|8|13|21|34|55|89|144|233|377|610|987|1597|2584|4181| CacheInfo(hits=36, misses=20, maxsize=None, currsize=20)
- New Content published on w3resource:
- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- React - JavaScript Library
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework