4 solutions

  • 3
    @ 2024-8-5 16:11:52
    #include<bits/stdc++.h>
    using namespace std;
    const int N=3010;
    int f[N][N];
    int main()
    {
    	string s1,s2;
    	cin>>s1>>s2;
    	s1=" "+s1;
    	s2=" "+s2;
    	int n=s1.size(),m=s2.size();
    	for(int i=1;i<=n;i++)
    	{
    		f[i][0]=i;	
    	}
    	for(int i=1;i<=m;i++)
    	{
    		f[0][i]=i;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    	    {
    			f[i][j]=min(f[i-1][j],f[i][j-1])+1;
    			if(s1[i]==s2[j])
    			{
    				f[i][j]=min(f[i][j],f[i-1][j-1]);
    			}
    			else
    			{
    				f[i][j]=min(f[i][j],f[i-1][j-1]+1);
    			}
    		}
    	} 
    	cout<<f[n][m];
    	return 0;
    }
    
    

    Information

    ID
    984
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    (None)
    # Submissions
    46
    Accepted
    7
    Uploaded By