像这样做的一种蟒蛇式的方法是
zip()
(1, 2), (2, 3) ...
然后返回第一个值,其中两个值都是相等的,并且都是字母数字。
next()
获取一个可选参数,用于在没有剩余内容时返回什么内容,在这里可以传递给
-1
isalnum()
可用于测试的字符串是字母数字的:
def firstRepeatedChar(s):
return next((j for j, i in zip(s, s[1:]) if j == i and j.isalnum()), -1)
firstRepeatedChar("..12345678910111213141516171820212223")
# 1
firstRepeatedChar("^^cmmit^^")
# 'm'
firstRepeatedChar("^^cmit^^")
# -1