检查字符串是否是Python中给定名称的类型化名称

假设我们有两个小写的字符串s和t。有时,当我们键入一个元音时,按键可能会被长按,并且该元音将重复1次或更多次。我们必须检查是否有可能键入了指示s的t。

因此,如果输入像s =“ mine” t =“ miiine”,则输出将为True,因为元音'i'重复了3次,其他字母也可以。

为了解决这个问题,我们将遵循以下步骤-

  • s_len:= s的大小

  • t_len:= t的大小

  • j:= 0

  • 对于范围在0到s_len-1之间的i

    • 返回False

    • cnt_2:= cnt_2 + 1

    • j:= j + 1

    • cnt_1:= cnt_1 +1

    • 我:=我+ 1

    • j:= j + 1

    • 进行下一次迭代

    • 返回False

    • 如果s [i]与t [j]不同,则

    • 如果s [i]不是元音,则

    • cnt_1:= 1

    • 当i <s_len-1和s [i]与s [i + 1]相同时,

    • cnt_2:= 1

    • 当j <t_len-1和t [j]与s [i]相同时,

    • 如果cnt_1> cnt_2,则

    • 返回True

    让我们看下面的实现以更好地理解-

    示例

    def isVowel(c):
       vowel = "aeiou"
       return c in vowel
    def solve(s, t):
       s_len = len(s)   t_len = len(t)   j = 0
       for i in range(s_len):
          if s[i] != t[j]:
             return False
          if isVowel(s[i]) == False:
             j = j + 1
             continue
          cnt_1 = 1
          while i < s_len - 1 and (s[i] == s[i + 1]):
             cnt_1 = cnt_1 + 1
             i = i + 1
          cnt_2 = 1
          while j < t_len - 1 and t[j] == s[i]:
             cnt_2 = cnt_2 + 1
             j = j + 1
          if cnt_1 > cnt_2:
             return False
       return True
    s = "mine"
    t = "miiine"
    print(solve(s, t))

    输入值

    "mine", "miiine"
    输出结果
    True