|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
动动手
1、请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
a、每位密码为单个小写字母
b、每位密码左右两边均有且只有三个大写字母
这题我想设置函数来解决
def findsecret(str1):
countA = 0 #统计前边的大写字母
countB = 0 #统计小写字母
countC = 0 #统计后边的大写字母
length = len(str1)
for i in range(length):
if str1[i] == '\n':
continue
if str1[i].isupper(): #如果str1[i]是大写字母
if countB: #如果已经出现小写字母
countC += 1 #统计后边的大写字母
else: #如果未出现小写字母
countC = 0 #清空后边大写字母的统计
countA += 1 #统计前边的大写字母
if str1[i].islower(): #如果str1[i]是小写字母
if countA != 3: #如果前面不是三个大写字母
countA = 0 #清空记录,重新统计
countB = 0
countC = 0
else: #如果前面是三个大写字母(满足条件)
if countB: #如果已经存在小写字母
countA = 0 #清空记录,重新统计
countB = 0
countC = 0
else: #如果改小写字母是唯一的小写字母
countB = 1 #countB记录一下
countC = 0 #这条可以不写
target = i #定位目标
if countA == 3 and countC == 3: #如果前后都是三个
if i+1 != length and str1[i+1].isupper(): #如果后面第4个也是大写
countB = 0 #清空记录B和C
countC = 0
else: #如果仅有三个大写(满足条件)
print(str1[target],end='') #打印目标,结尾不换行
countA = 3 #这条可以不写
countB = 0 #清空B和C,继续寻找
countC = 0
return ''
str2 = input('''请粘贴:''')
print(findsecret(str2))
可以运行,运行结果如下
请粘贴:AAAbCCC'\n'aBBBdEEE
bd
但是面对换行的情况就没办法继续找,求大佬解惑
请粘贴:dQmaKZSdqKNrnvJlcyVMKuNWmuoOeyKecgjXbmSqnpjwJEaDYoehEklEgJyiksGxdEKgfYRXQecRZgfe
AAAbCCC
>>>
|
|