华为code中的字符串通配符匹配

来源:互联网 发布:oracle dblink mysql 编辑:程序博客网 时间:2024/06/05 16:32

这道题只得了60分,因为没看清下面输出的false 和true是小写的,

利用动态规划,以后这种字符串匹配问题都要想到动态规划~

另外这道题也要注意python的二维数组用法


lst = []for i in range(2):    lst.append(raw_input())sr = lst[0]sr_t = lst[1]rt = [[0 for j in range(len(sr_t))] for i in range(len(sr))]if sr[0] == '*':    for i in range(len(sr_t)):        rt[0][i]=1else:    rt[0][0]=1raw = len(sr)col = len(sr_t)for i in range(1,raw):    for j in range(1,col):        if (sr[i] == '?' and sr_t[j] != '\0') or (sr[i] == sr_t[j]):            rt[i][j] = rt[i-1][j-1]        elif sr[i] == '*':            if rt[i-1][j-1] == 1 or rt[i-1][j] == 1 or rt[i][j-1] == 1:                rt[i][j] = 1b = "true"if rt[len(sr)-1][len(sr_t)-1] == 0:    b = "false"print b


0 0
原创粉丝点击