【发布时间】:2020-12-12 19:33:55
【问题描述】:
自然语言理解是自然语言处理的子领域,用于设计基于人工智能的应用程序的人们能够理解人类语言。 HashInclude 语音处理团队有一个名为 Virtual Assistant 的项目。对于这个项目,他们任命您为数据工程师(他非常了解通过编写高效代码来创建干净的数据集)。作为数据工程师,您的首要任务是制作元音识别数据集。在此任务中,您必须在给定字符串的所有可能子字符串中找到元音。对于每个给定的字符串,您必须打印元音的总数。
输入: 第一行包含一个整数 T,表示测试用例的数量。
接下来的每一行都包含一个字符串,该字符串包含小写和大写。
输出: 打印元音和。
每个测试用例的答案应打印在新行中。
输入约束
1
1
样本输入
1
巴克布
样本输出 16
现在我有 2 个问题要问
q1) 我自己想出了下面的代码,但我不知道如何编写总和代码,用于存储在“r”变量中的子字符串中找到的元音数量
q2) 在查找 'geeks' 的子字符串时,'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)
【问题讨论】:
标签: python list list-comprehension