題意:給出兩個字符串,第一個爲長字符串,子串中包含第二個串,可以從第一個串中刪除一段連續的子串,這個操作需要保證刪除後仍包含第二個串,求出刪除的串的最大長度
思路:由於數據很小(200),故可以直接暴力,枚舉刪除的段的左右邊界,判斷刪除之後是否仍包含第二個串,取刪除的段的最大長度即可
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+10;
const int inf = 0x3f3f3f3f;
int main()
{
string s1, s2;
cin >> s1 >> s2;
int ans = 0;
for (int i = 0; i < s1.length(); i++)
for (int j = i; j < s1.length(); j++) {
int cur = 0;
for (int k = 0; k < s1.length(); k++) {
if (i <= k && k <= j) continue;
if (s1[k] == s2[cur]) cur++;
}
if (cur == s2.length())
ans = max(ans, j-i+1);
}
cout << ans << "\n";
return 0;
}