
(1)如输入s1和s2分别为 “hello”和“hi”( 不含引号),输出最长共同子串是
(2)定义longstr函数,功能是找到字符串s1和s2中相同的最长子串,请在划线处填入合适的代码。
def longstr(s1, s2):
m = [[0] * (1 + len(s2)) for i in range(1 + len(s1))]
t, h = 0, 0
for i in range(1, 1 + len(s1)):
for j in range(1, 1 + len(s2)):
if
m[i][j] = m[i - 1][j - 1] + 1
if m[i][j] > t:
t = m[i][j]
else:
m[i][j] = 0
return s1[h - t:h]
(3)定义pos函数,功能是定位子串在字符串s2中出现的位置,请在划线处填入合适的代码。
pos(st):
print("子串出现位置: ")
start = 0
if len(st) > 0:
while True:
start = s2.find(st, start) #返回字符串s2中子串st出现的首字符索引,从索引start开始找,若找不到,则输出-1
if start == - 1:
break
print(start, end="/")
(4) 主程序,请在划线处填入合适的代码
s1 = input("s1:")
s2 = input("s2:")
s =
print("最长共同子串: ", s)
pos(s)

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

