微軟公司筆試題_附上源碼解決
阿新 • • 發佈:2017-08-01
a* als ted 技術 original name != alt 邏輯
第一道題
# -*- 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‘, ‘‘)
微軟公司筆試題_附上源碼解決