万卷网 > 题目详情
题型:组合题

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

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int min(int x,int y,int z){
return min(min(x,y),z);
}

int edit_dist_dp(string str1,string str2){
int m=str1.length();
int n=str2.length();
vector<vector<int>> dp(m+1,vector<int>(n+1));

for(int i=0;i<=m;i++){
for(int j=0;j<=n;j++){
if(i==0)
dp[i][j]=     ①     ;
else if(j==0)
dp[i][j]=     ②     ;
else if(     ③     )
dp[i][j]=     ④     ;
 else
 dp[i][j]=1+min(dp[i][j-1],dp[i-1][j],     ⑤     ); 
 }
 }
return dp[m][n];
}

int main(){
 string str1,str2;
 cin>>str1>>str2;
 cout<<"Mininum number of operation:"
 <<edit_dist_dp(str1,str2)<<endl;
 return 0; 
}


(1).

⑤处应填( )

A.

dp[i][j] + 1

B.

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

C.

dp[i-1][j-1]

D.

dp[i][j]

(2).

③处应填( )

A.

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

B.

str1[i]==str2[j]

C.

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

D.

str1[i]!=str2[j]

(3).

①处应填( )

A.

j

B.

i

C.

m

D.

n

(4).

②处应填( )

A.

j

B.

i

C.

m

D.

n

(5).

④处应填( )

A.

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

B.

dp[i-1][j-1]

C.

dp[i-1][j]

D.

dp[i][j-1]

更新时间:2023-09-18 17:07:25 |
【知识点】 CCF非专业级别软件能力认证CSP-J/入门级

相似题推荐

简答题

T4多边形


2026-04-17
简答题

T3异或和


2026-04-17
简答题

T2座位


2026-04-16
简答题

T1拼数

2026-04-16
单选题

假设a、b、c都是布尔变量,逻辑表达式(a &&b)IⅡ(!c &&a)的值与下列哪个表达式不始终相等?()

A.

a &&(bⅡ!c)

B.

(al|!c)&&(bⅡ !c)&&(all a)

C.

a &&(!b II c)

D.

!(!a|!b)II(a &&!c)

2025-10-16
公众号
客服 反馈
顶部