def bubble_sort(arr):
for i in range(len(arr)-1):
for j in range(len(arr)-1-i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
return arr
if __name__=="__main__":
a=[5,4,6,3,1,2,8,9,7]
print(bubble_sort(a))
def insert_sort(arr):
for i in range(len(arr)-1):
for j in range(i+1,0,-1):
if arr[j]<arr[j-1]:
arr[j-1],a[j]=a[j],a[j-1]
else:
break
return arr
if __name__=="__main__":
a=[5,4,6,3,1,2,8,9,7]
print(insert_sort(a))
'''
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
'''
def child_str(str):
tmp=''
length=0
for i in str:
if i not in tmp:
tmp+=i
length=max(length,len(tmp))
else:
tmp+=i
tmp=tmp[tmp.index(i)+1:]
print(tmp)
return length
if __name__=="__main__":
a="abcabcqwertyuiop"
print(child_str(a))
'''
求两个字符串的最长公共子串
思想:建立一个二维数组,保存连续位是否相同
'''
def sub_str(str1,str2):
lstr1=len(str1)
lstr2=len(str2)
record=[[0 for j in range(lstr2+1) ] for i in range(lstr1+1)]
max_num = 0
end_index = 0
for i in range(lstr1):
for j in range(lstr2):
if str1[i] == str2[j]:
record[i+1][j+1] = record[i][j] + 1
if record[i+1][j+1] > max_num:
max_num = record[i+1][j+1]
end_index = i + 1
print(record)
return str1[end_index-max_num:end_index],max_num
if __name__=="__main__":
str1="mabc"
str2="abcn"
print(sub_str(str1,str2))
输出:
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 2, 0, 0],
[0, 0, 0, 3, 0]]
('abc', 3)