题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个字符串和一个二维整数数组,二维数组内每个元素有两个数值,代表一个区间,要求返回每个区间内开头和结尾都是元音字母的数量。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
def vowelStrings(self, words: List[str], queries: List[List[int]]) -> List[int]:
# s = list(accumulate([w[0] in ['a', 'e', 'i', 'o', 'u'] and w[-1] in ['a', 'e', 'i', 'o', 'u'] for w in words], initial=0))

# return [s[q[1]+1]-s[q[0]] for q in queries]

rec = [0] * (len(words)+1)
ans = [0] * len(queries)
even_char = ['a', 'e', 'i', 'o', 'u']

for i, word in enumerate(words):
rec[i+1] += rec[i] + (1 if word[0] in even_char and word[-1] in even_char else 0)

for i, x in enumerate(queries):
ans[i] = rec[x[1]+1]-rec[x[0]]

return ans