题库 信息学奥赛题库 题目列表 (编辑距离)给定两个字符串,每次操作可以选择删除(D...
组合题

(编辑距离)给定两个字符串,每次操作可以选择删除(Delete)、插入(Insert)、替换(Replace),一个字符,求将第一个字符串转换为第二个字符串所需要的最少操作次数。

试补全动态规划算法:

1.#include <iostream>

2.#include <string>

3.#include <vector>

4.using namespace std;

5. 

6.int min(int x,int y,int z){

7. return min(min(x,y),z);

8.}

9.

10.int edit_dist_dp(string str1,string str2){

11. int m=str1.length();

12. int n=str2.length();

13. vector<vector<int>> dp(m+1,vector<int>(n+1));

14.

15. for(int i=0;i<=m;i++){

16. for(int j=0;j<=n;j++){

17. if(i==0)

18. dp[i][j]=(1);

19. else if(j==0)

20. dp[i][j]=(2);

21. else if((3))

22. dp[i][j]=(4);

23. else

24. dp[i][j]=1+min(dp[i][j-1],dp[i-1][j],(5)); 

25. }

26. }

27. return dp[m][n];

28.}

29. 

30.int main(){

31. string str1,str2;

32. cin>>str1>>str2;

33. cout<<"Mininum number of operation:"

34. <<edit_dist_dp(str1,str2)<<endl;

35. return 0; 

36.}
第1题 单选

①处应填( )

A.

j

B.

i

C.

m

D.

n

第2题 单选

②处应填( )

A.

j

B.

i

C.

m

D.

n

第3题 单选

③处应填( )

A.

str1[i-1]==str2[j-1]

B.

str1[i]==str2[j]

C.

str1[i-1]!=str2[j-1] 

D.

str1[i]!=str2[j]

第4题 单选

④处应填( )

A.

dp[i-1][j-1]+1

B.

dp[i-1][j-1]

C.

dp[i-1][j]

D.

dp[i][j-1]

第5题 单选

⑤处应填( )

A.

dp[i][j] + 1

B.

dp[i-1][j-1]+1

C.

dp[i-1][j-1] 

D.

dp[i][j]

题目信息
完善程序 初赛 2023年
-
正确率
0
评论
152
点击