Skip to main content

Coding Problems : Hacker Rank (Separate The Numbers)

 Here I found one interesting question from Hacker Rank, So Let's dig into question and write code....

Question you can see Here

Note: Read the question and try to understand and solve it.

Here we'll see two different ways to solve it..

Method 1:

  • Iterative Method:

# for ex. s = "91011"
def separateNumbers(s):
res = 'NO'
for i in range(len(s)):
#i = 0 , starting digit = 9
starting_digit = int(s[ : i + 1])
new_s = str(starting_digit)

#len(new_s) = 1 , len(s)=8 ,not same
if len(new_s) != len(s):
digit = starting_digit
while len(new_s) < len(s):
# digit = 9
digit += 1 # digit = 10
new_s += str(digit) # new_s = "910" (10 concatenet)
# loop break when len(new_s) >= len(s)
# after loop breaks new_s = "91011"
if new_s == s:
res = f"YES {starting_digit}"
break
print(res)

Method 2:

  • Recursive Method: 
 
import re
def separateNumbers(s):
for i in range(0, len(s)//2):
if checkComply(s[0:i+1], s[i+1:]):
print(f'YES {s[0:i+1]}')
return
print('NO')
# for checking if there are two continues number's difference is = 1
def checkComply(p1, p2):
# next expected number = next_num
next_num = str(int(p1) + 1)
# match patter with p2
match = re.match(next_num, p2)
if match:
# replace next_num in p2 with ""(only first occurence)
p2_new = p2.replace(next_num, '', 1)
# recursion till len(p2_new == 0)or match == None
if len(p2_new) == 0:
return True
return checkComply(next_num, p2_new)
else:
return False

Note: If You've any other solution then share with us in comment box.

Thank You 😊😊

GitHub



Other Important Post

 

Comments

Popular posts from this blog

Products Which I like

headphone Buy now Camera Buy now

Makefile

 You may have seen file named Makefile or you may have type command like make, make install. so what is this file Makefile and what are this command. let's discuss about it.

What is Docker?

 Hello Everyone , Today we'll talk about what is docker ?, how to use it ? and why you should use it ?, then let's begin...