2:我们将使用字符串长度中的num对字符串进行切片。
第3条:检查切片len>这将防止奇数长度字符串上的索引错误。
第4条:使用all()检查切片的两个字符是否都是元音,如果是则返回True。
第5条:退出for循环后,我们将返回false,因为之前的if语句没有返回True。
我如何逐个分析字符串,然后看看它是否有2个元音(非大写),并看看它是否至少有两个连续的字母(非大写)
例如:Aabcd有效
我们将逐个迭代字符串。我们将创建一个包含所有字母的列表。然后,当我们迭代字符串时,我们将用所有字母检查每个元素。一旦我们得到正确的字母,我们将检查字符串的下一个字母是否是下一个连续的字母。如果是,则将f转换为True并中断循环。对于元音,我们将采用可变计数。使用loop计算字符串中的所有元音。在所有这些步骤之后,我们将检查f是否为True, count是否为>2。如果是,则有效。别的,无效。代码:
x=input("Enter string: ")
f=False
alphas="abcdefghijklmnopqrstuvwxyz"
vowels="aeiou"
for i in range(len(x)):
for j in range(len(alphas)):
if (j+1)<len(alphas) and (i+1)<len(x):
if x[i]==alphas[j] and x[i+1]==alphas[j+1]:
f=True
count=0
for i in x:
if i in vowels:
count+=1
if f==True and count>=2:
print("valid")
else:
print("invalid")
快速解决方案:
函数第一行:定义元音。2:我们将使用字符串长度中的num对字符串进行切片。
第3条:检查切片len>这将防止奇数长度字符串上的索引错误。
第4条:使用all()检查切片的两个字符是否都是元音,如果是则返回True。
第5条:退出for循环后,我们将返回false,因为之前的if语句没有返回True。
def string_analyze(string: str) -> bool:
vowels = 'aeiou'
for num in range(len(string)):
if len(string[num:num+2]) > 1:
if all(i in vowels for i in string[num:num+2]):
return True
return False