如何解决如何计算子字符串中的元音数量?
自然语言理解是自然语言处理的子域,过去用于设计基于AI的应用程序的人们具有理解人类语言的能力。 HashInclude语音处理团队有一个名为虚拟助手的项目。在此项目中,他们任命您为数据工程师(他具有通过编写高效的代码来创建干净的数据集的丰富知识)。作为数据工程师,您的首要任务是制作元音识别数据集。在此任务中,您必须在给定字符串的所有可能子字符串中找到元音。对于每个给定的字符串,您必须打印出元音的总数。
接下来的每一行都包含一个字符串,该字符串同时包含小写和大写字母。
输出: 打印元音和。
每个测试用例的答案应在新行中打印。
输入约束
1
1
样品输入
1个
细菌
样品输出 16
现在我有两个问题要问
q1)我想出了下面的代码,但是对于存储在'r'变量中的子字符串中的元音数量,我不知道如何编写总和的代码
q2)在查找“怪胎”的子字符串时,“ e”将被重复两次,我想将“ e”的第一次出现的总和加1,而不是第二个。
T=int(input())
for i in range(T):
print('Enter the string:')
l=input().lower()
r=[l[i:j] for i in range(len(l))
for j in range(i+1,len(l)+1)]
#print(r)
for i in range(len(r)):
if r[i] =='aeIoU':
sum += 1
print(sum)
注意:我知道以下代码,但发现表达式“ sum + =((n-i)*(i + 1))”太难理解了
for _ in range(int(input())):
s=input()
n=len(s)
sum=0
for i in range(n):
if s[i] in ("aeIoUAEIoU"):
sum+=((n-i)*(i+1))
print(sum)
解决方法
vowels = 'aeiou'
result = sum(1 for i in teststring.lower() if i in vowels)
,
尝试一下
for i in range(len(r)):
if r[i] in 'aeiou':
sum += 1
print(sum)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。