检查Python中字符串是否为给定名称的输入名称
假设我们有两个小写字符串s和t。有时,当我们输入元音时,按键可能会长时间按下,并且元音会重复一次或多次。我们必须检查t是否可能代表s的输入。
因此,如果输入类似于s = "mine" t = "miiine",则输出将为True,因为元音'i'重复了三次,其他字母都正常。
为了解决这个问题,我们将遵循以下步骤:
- s_len := s的长度
- t_len := t的长度
- j := 0
- 对于范围从0到s_len - 1的i,执行:
- 如果s[i]与t[j]不同,则
- 返回False
- 如果s[i]不是元音,则
- j := j + 1
- 进行下一次迭代
- cnt_1 := 1
- 当i < s_len - 1且s[i]与s[i + 1]相同时,执行:
- cnt_1 := cnt_1 + 1
- i := i + 1
- cnt_2 := 1
- 当j < t_len - 1且t[j]与s[i]相同时,执行:
- cnt_2 := cnt_2 + 1
- j := j + 1
- 如果cnt_1 > cnt_2,则
- 返回False
- 如果s[i]与t[j]不同,则
- 返回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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP