【python公司校招题】

【python百度】字符串匹配?

2019-08-09  本文已影响0人  阿牛02

题目:牛牛有两个字符串A和B,其中A串是一个01串,B串中除了可能有0和1,还可能有'?',B中的'?'可以确定为0或者1。 寻找一个字符串T是否在字符串S中出现的过程,称为字符串匹配。牛牛现在考虑所有可能的字符串B,有多少种可以在字符串A中完成匹配。

例如:A = "00010001", B = "??"

字符串B可能的字符串是"00","01","10","11",只有"11"没有出现在字符串A中,所以输出3.

分析:

code:

A = "0001000100"

B = "??"

all_s = []

for i in range(len(A) - len(B) + 1):

    tmp = A[i : i + len(B)]

    flag = True

    for j in range(len(B)):

        if tmp[j] != B[j] and B[j] != "?":

            flag = False

            break

    if flag:

        if tmp not in all_s:

            all_s.append(tmp)

print(len(all_s))

程序运行结果为:

3

上一篇 下一篇

猜你喜欢

热点阅读