代码看不到,不好说呀
一般来说类似
#include <stdio.h>
void sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
int t = arr[j]; arr[j] = arr[j+1]; arr[j+1]=t;
}
}
}
}
int main()
{
int arr[10] = {2,4,1,7,3,10,9,8,5,6};
sort(arr, 10);
for (int i = 0; i < 10; i++)
printf("%d ", arr[i]);
return 0;
}
//主函数
int main()
{
DuLinkList L;
cout<<"**********欢迎使用图书管理系统目录**********"<<endl;
cout<<"目录:"<<endl;
cout<<"1:建立"<<endl;
cout<<"2:插入"<<endl;
cout<<"3:删除"<<endl;
cout<<"4:输出"<<endl;
cout<<"5:查找"<<endl;
cout<<"6:统计图书数量"<<endl;
cout<<"0:退出"<<endl;
cout<<"********************************************"<<endl;
cout<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
InitDuList_L(L);
cout<<"建立成功!"<<endl;
break;
}
default:
{
cout<<"还未建立双向链表!"<<endl;
return 0;
break;
}
}
while(1)
{
if(stop==1)
{
return 0;
}
menu(L);
}
return 0;
}
我可以给您提供以下思路:
下面给出Python的实现代码,以计算莱文斯坦距离为例:
def levenshtein_distance(s1: str, s2: str) -> int: n1 = len(s1) n2 = len(s2) if n1 == 0 or n2 == 0: return n1 + n2 dp = [[0] * (n2 + 1) for _ in range(n1 + 1)] for i in range(n1 + 1): dp[i][0] = i for j in range(n2 + 1): dp[0][j] = j for i in range(1, n1 + 1): for j in range(1, n2 + 1): if s1[i - 1] == s2[j - 1]: dp[i][j] = dp[i - 1][j - 1] else: dp[i][j] = min(dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]) + 1 return dp[n1][n2]
assert levenshtein_distance('mitcmu', 'mtacnu') == 3
如果需要计算最长公共子串长度,只需要稍作修改即可。