诡异事件
查看原帖
诡异事件
1118893
Dark_Star楼主2024/1/8 19:16

string和char数组差这么大的?

0分代码

#include<bits/stdc++.h>
#define endl '\n'
#define debug cout<<"debug"
using namespace std;
int dp[1001][1001];
int main(){
	string str1,str2;
	cin>>str1;
	str2=str1;
	reverse(str2.begin(),str2.end());
	int len=str1.length();
	for(int i=0;i<len;i++)
		for(int j=0;j<len;j++)
			if(str1[i]==str2[j])dp[i][j]=dp[i-1][j-1]+1;
			else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
	cout<<len-dp[len-1][len-1];
	return 0;
}

AC代码

#include<bits/stdc++.h>
#define endl '\n'
#define debug cout<<"debug"
using namespace std;
int dp[1001][1001];
char str1[1001],str2[1001];
int main(){
	scanf("%s",str1+1);
	int len=strlen(str1+1);
	for(int i=1;i<=len;i++)str2[i]=str1[len-i+1];
	for(int i=1;i<=len;i++)
		for(int j=1;j<=len;j++)
			if(str1[i]==str2[j])dp[i][j]=dp[i-1][j-1]+1;
			else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
	cout<<len-dp[len][len];
	return 0;
}

有大佬解释一下吗?(前者本地过了)

2024/1/8 19:16
加载中...