标签:bsp slow 函数 检查 大小 检测 编号 语句 迭代
def decrypt(string):
len_str = len(string)
target = 4
if \ # 检测 3 号位
string[0].isupper() and string[1].isupper() and string[2].isupper() and string[3].islower() and string[4].isupper() and string[5].isupper() and string[6].isupper() and string[7].islower():
print(string[3], end=‘‘)
while target < len_str-4:
if \# 检测中间各位
string[target-4].islower() and \ # 若有多种字符,可用 not string[i].isupper()
string[target-3].isupper() and string[target-2].isupper() and string[target-1].isupper() and string[target ].islower() and string[target+1].isupper() and string[target+2].isupper() and string[target+3].isupper() and string[target+4].islower():
print(string[target], end=‘‘)
target += 4
else:
target += 1
if \ # 检测倒数第 4 位
string[len_str-7].islower() and string[len_str-6].isupper() and string[len_str-5].isupper() and string[len_str-4].islower() and string[len_str-3].islower() and string[len_str-2].isupper() and string[len_str-1].isupper() and string[len_str ].isupper():
print(string[len_str-3], end=‘‘)
因为字符串中只有大小写英文字母,所以先找出所有小写英文字母的编号,再检查编号的间距。
若左右相邻的编号大小均相差 4,则该编号对应的字母即为所求之一。
(若有回车符,可用 if 语句将非回车符依次写入列表中,再用以下程序。)
def decrypt(string):
len_str = len(string)
list0 = []
for i in range(len_str): # 找出所有小写字母在 string 中的编号,并写入 list0
if string[i].islower():
list0.append(i)
len_list0 = len(list0)
list1 = []
if list0[0] == 3 and list0[1] == 7: # 检测 3 号位
list1.append(3)
for i in range(1, len_list0-1): # 找出 list0 中符合要求的小写字母的编号
if (list0[i]-4) == list0[i-1] and (list0[i]+4) == list0[i+1]:
list1.append(list0[i])
if list0[-1] == len_str-4 and list0[-2] == len_str-8: # 检测倒数第 4 位
list1.append(list0[-1])
len_list1 = len(list1)
for i in range(len_list1): # 输出
print(string[list1[i]], end=‘‘)
def decrypt(string):
countA = 0 # 统计小写字母左侧的大写字母
countB = 0 # 统计小写字母
countC = 0 # 统计小写字母右侧的大写字母
len_str = len(string)
for i in range(len_str):
if string[i].isupper():
if countB: # AAAaA AAAaAA AAAaAAA
countC += 1
else: # A AA AAA AAAA ...
countC = 0
countA += 1
if string[i].islower():
if countA != 3: # a Aa AAa AAAAa ...
countA = 0
countB = 0
countC = 0
else:
if countB: # AAAaa
countA = 0
countB = 0
countC = 0
else: # AAAa
countB = 1
countC = 0
target = i
if countC == 3:
if i+1 != len_str and \ # 若 i 未迭代到最后一位
string[i+1].isupper(): # AAAaAAAA
countB = 0
countC = 0
else: # AAAaAAAb 总算找到了一个 a
print(string[target], end=‘‘)
countA = 3 # AAAb
countB = 0
countC = 0
标签:bsp slow 函数 检查 大小 检测 编号 语句 迭代
原文地址:https://www.cnblogs.com/yorkyu/p/10386418.html