c

codeye

V1

2022/10/23阅读:31主题:默认主题

笑脸

给定一个数组(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