题意:
给你一段字符串,让你用一个字符代替其中一个子串(如果有多个,全部代替),问你代替后子串长度加代替后的串的总长度最小是多少。
思路:
才100,怎么想都可以暴力啦,但这里有一个坑,可以不代替- -
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<string>
#include<algorithm>
using namespace std;
string s;
int ans=n;
int main()
{
cin>>s;
int n=s.size();
for(int i=0;i<n;i++)
{
for(int len=2;i+len-1<n;len++){
string pi=s.substr(i,len);
int coun=0;
for(int k=0;k+len-1<n;k++)
{
string temp=s.substr(k,len);
if(temp==pi)
coun++;
}
if(ans>n-(len-1)*coun+len)
ans=n-(len-1)*coun+len;
}
}
cout<<ans<<endl;
return 0;
}
code: