Answer to Question #204678 in Python for swaroop

Question #204678

Rearrange Numbers in String


Given a string, write a program to re-arrange all the numbers appearing in the string in decreasing order. Note: There will not be any negative numbers or numbers with decimal part.




Input

The input will be a single line containing a string.




Output

The output should be a single line containing the modified string with all the numbers in string re-ordered in decreasing order.




Explanation

For example, if the given string is "I am 5 years and 11 months old", the numbers are 5, 11. Your code should print the sentence after re-ordering the numbers as "I am 11 years and 5 months old".




Sample Input


I am 5 years and 11 months old


Sample Output


I am 11 years and 5 months old




Sample Input 


python4 anjali25


Sample Output


python25 anjali4




Sample Input 


I am 2 years and 3 months old. This sentence4 5should be 6rearr7anged8.


Sample Output


I am 8 years and 7 months old. This sentence6 5should be 4rearr3anged2.


1
Expert's answer
2021-06-08T23:49:07-0400
def RearrangeNumbers(source):
  source += ' '
  tmp0 = list(source)
  tmp1 = [c if c.isdigit() else ' ' for c in tmp0 ]
  tmp2 = "".join(tmp1)
  tmp3 = tmp2.split()
  result = 'Output string: '
  numbers = []
  for w in tmp3:
    numbers.append(int(w))
  if len(numbers) < 2:
    return result + source
  numbers.sort(reverse=True)
  result_string = ''
  i = 0
  while i < len(source): 
    c = source[i]
    if not c.isdigit():
      result_string += c
    else:
      result_string += str(numbers[0])
      numbers = numbers[1:]
      while source[i].isdigit():
        i+=1
      result_string += source[i]
    i+=1
  return result + result_string

print(RearrangeNumbers(input("Input string: ")))

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS