C - Double-ended Strings题解
题解:
题意中让找出在字符串a==b(注意:当a,b字符串都为空时也视为相等),给出的操作方式就是删除,所以我们只需要找出他们相同的子串,求出子串的长度,然后用他们两个原字符串长度求和再减去相同子串长度的二倍就是剩下该删除的也就是求出的操作步数。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
string a,b;
cin>>a>>b;
int ans=0;
for(int i=0; i<a.size(); i++)
{
int cnt=0;
for(int j=0; j<b.size(); j++)
{
if(a[i]==b[j])
{
while(a[i+cnt]==b[j+cnt]&&i+cnt<a.size()&&j+cnt<b.size())
{
cnt++;
}
}
//printf("%d \n",ans);
ans=max(ans,cnt);
}
}
cout<<a.size()+b.size()-2*ans<<endl;
}
}