Program to check typed string is for writing target string in stuck keyboard keys or not in Python



Suppose we have two strings s and t. We want to form t, but there are some problems in the keyboard where some of characters stuck so they may be written 1 or more times. We have to check whether it's possible that typed s was meant to write t or not.

So, if the input is like s = "appppleee" t = "apple", then the output will be True.

To solve this, we will follow these steps −

  • i := 0, j := 0
  • s_len := size of s
  • t_len := size of t
  • t_last := blank string
  • while j < t_len, do
    • if i is same as s_len, then
      • return False
    • if s[i] is same as t[j], then
      • t_last := t[j]
      • i := i + 1
      • j := j + 1
    • otherwise when s[i] is same as t_last, then
      • i := i + 1
    • otherwise,
      • return False
  • if i < s_len, then
    • return true if all char in s[from index i to end] is same as t_last
  • otherwise,
    • return True

Example

Let us see the following implementation to get better understanding −

def solve(s, t):    i = j = 0    s_len = len(s)    t_len = len(t)    t_last = ""    while j < t_len:       if i == s_len:          return False       if s[i] == t[j]:          t_last = t[j]          i += 1          j += 1       elif s[i] == t_last:          i += 1       else:          return False    if i < s_len:       return all(char == t_last for char in s[i:])    else:       return True s = "appppleee" t = "apple" print(solve(s, t))

Input

"appppleee", "apple" 

Output

True
Updated on: 2021-10-14T10:19:08+05:30

191 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements