c
codeye
V1
2022/10/23阅读:46主题:默认主题
笑脸
给定一个数组(arr)作为参数完成函数countSmileys,该函数应返回笑脸的总数。
笑脸的规则。
每个笑脸必须包含一对有效的眼睛。眼睛可以被标记为:
或 ;
一个笑脸可以有一个鼻子,也可以没有。鼻子的有效字符是-
或~
每张笑脸都必须有一个微笑的嘴,该嘴应标记为:)
或D
除了上面提到的那些,不允许有其他字符。
有效的笑脸例子: :)
:D`` ;-D
:~)
无效的笑脸: ;(
:> ``:}`` :]
例子:
(count_smileys([]), 0)
(count_smileys([':D',':~)',';~D',':)']), 4)
(count_smileys([':)',':(',':D',':O',':;']), 2)
(count_smileys([';]', ':[', ';*', ':$', ';-D']), 1)
不用re的写法
def count_smileys(arr):
n = 0
valid = [':)',':D',';D',':)']
for c in arr:
if len(c) == 3:
if c[0]+c[-1] in valid and c[1] in ['-','~']:
n += 1
elif len(c) == 2 and c in valid:
n += 1
return n
正则re的写法
from re import findall
def count_smileys(arr):
return len(list(findall(r"[:;][-~]?[)D]", " ".join(arr))))
作者介绍
c
codeye
V1