A string is happy if every three consecutive characters are distinct.
def check_if_string_is_happy1(input_str):
check = []
for a,b,c in zip(input_str,input_str[1:],input_str[2:]):
if a == b or b == c or a == c:
check.append(False)
else:
check.append(True)
return all(check)
def check_if_string_is_happy2(input_str):
return not any(
a == b or a == c or b == c
for a ,b,c in zip(input_str,input_str[1:],input_str[2:])
)
zip()
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
any()
用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
all()
用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。