Check Typed String for Stuck Keyboard Keys 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 −

Open Compiler
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

17K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements