== 判断符不是这样用的 千万不要把系统当人看,它根本不明白人类思维,请用合法方式写代码(至少系统明白) string = "ABCbananaDEF"
valid = lambda string: all(+string[-3:]])
print(valid(string)) 本帖最后由 jackz007 于 2021-11-7 20:18 编辑
试一下这个代码
s , p = 'a' + '' . join(string . split('\n')) + 'a' , ''
for k in range(4 , len(s) - 4):
if s . islower() and s . isupper() and s . islower() and s . isupper() and s . islower():
p += s
print(p)
这个代码直接使用了楼主代码中的变量 string。 本帖最后由 jackz007 于 2021-11-8 01:20 编辑
for each in range(3,length-2):
两侧必须对称
for each in range(3,length-3):
这样写,每次判断以 string[ i ] 为中心的 7 个字符,注意,题目的条件说,每位密码的左右两边均有且只有三个大写字母,这就告诉我们,应该每次判断以 string[ i ] 为中心的 9 个字符,因为,秘码字符的两侧如果有第 4 个字符,那就一定是小写字母。这也是我为什么要在字符串的首尾个添加一个小写字母 'a' 的原因,好让判断始终如一,否则的话,首尾必须要特别处理。剩下的判断逻辑就已经非常简单了。
页:
[1]