假设我们有两个小写的字符串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