第一道题
# -*- coding: utf-8 -*-
'''
f(a*b, acb) => true
f(abc*, abbc) => false
f(**bc, bc) => true
'''
import re
string='abbc'
Regex = re.compile(r'(abc)*')
def f(Regex,string):
mo = Regex.search(string)
if mo.group()!='':
return True
else:
return False
if __name__ == '__main__':
print(f(Regex,string))
第二道题
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 1 09:04:28 2017
@author: toby
字典 1--a
chr 97--a
[0:2] 表示前面两位
[2:] 表示第三位到最后一位
考逻辑递归
"""
def output(original, pre):
#递归的基本情况,当原始字符串长度为0或1的时候
#当字符串长度为0,返回空
if len(original) == 0:
print (pre)
return
if len(original) == 1:
#输出字符串由前面字母+后面字母,后面字母运用递归原理
print (pre + chr(96 + int(original)))
return
#运用递归
#如果前面两位数小于27
if int(original[0:2]) < 27:
#新字符串 k, chr(96+11)
new_chr = chr(96 + int(original[0:2]))
#print('new_chr:',new_chr)
#[2:] 表示第三位到最后一位,开始递归
output(original[2:], pre + new_chr)
#如果前面两位数大于或等于27
#新字符串,[0:1]表示第一位数字
new_chr = chr(96 + int(original[0:1]))
#[1:]第一位到最后一位,开始递归
output(original[1:], pre + new_chr)
if __name__ == '__main__':
output('1123', '')
#output('112345345345435', '')