#####################################
s="0123456789"
print(s[:5])
print(s[:5:2])
s.find("2") # 找字
#####################################
# 印出三角*
for i in range(0,10):
for j in range(0,i+1):
print("*",end="") # 不換行
print("")
#####################################
#Longest Common SubSequence
import numpy as np
S1="abcdefg"
S2="abzzcdzzefg"
L1 = list(S1)
L2 = list(S2)
#補零作為起始
L1.insert(0,"0")
L2.insert(0,"0")
A = np.zeros((len(L1), len(L2)), dtype=np.int)
#初始值
for i in range(0,len(L1)):
A[i,0] = -i
for j in range(0,len(L2)):
A[0,j] = -j
#計算距離矩陣
for i in range(1,len(L1)):
for j in range(1,len(L2)):
if L1[i] == L2[j]:
A[i,j] = A[i-1,j-1] + 2
else:
A[i,j] = max(A[i-1,j-1],A[i,j-1],A[i-1,j]) - 1
#回溯字串
i = len(L1)-1
j = len(L2)-1
LCS1 = ""
LCS2 = ""
while i > 0 and j > 0:
#左上
if A[i-1,j-1] >= max(A[i,j-1],A[i-1,j]):
LCS1 = L1[i] + LCS1
LCS2 = L2[j] + LCS2
i = i - 1
j = j - 1
#左
elif A[i,j-1] >= A[i-1,j]:
LCS1 = "-" + LCS1
LCS2 = L2[j] + LCS2
j = j - 1
#上
else:
LCS1 = L1[i] + LCS1
LCS2 = "-" + LCS2
i = i - 1
while i > 0:
LCS1 = L1[i] + LCS1
LCS2 = "-" + LCS2
i = i - 1
print("輸入的字串")
print(S1)
print(S2)
print("輸出的字串")
print(LCS1)
print(LCS2)
print("共同的字串")
for i in range(0,len(LCS1)):
if LCS1[i] == LCS2[i]:
print(LCS1[i],end="")