L3-2 至多删三个字符 (30 分)
给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串?
输入格式:
输入在一行中给出全部由小写英文字母组成的、长度在区间 [4, 10
6
] 内的字符串。
输出格式:
在一行中输出至多删掉其中 3 个字符后不同字符串的个数。
输入样例:
ababcc
输出样例:
25
提示:
删掉 0 个字符得到 “ababcc”。
删掉 1 个字符得到 “babcc”, “aabcc”, “abbcc”, “abacc” 和 “ababc”。
删掉 2 个字符得到 “abcc”, “bbcc”, “bacc”, “babc”, “aacc”, “aabc”, “abbc”, “abac” 和 “abab”。
删掉 3 个字符得到 “abc”, “bcc”, “acc”, “bbc”, “bac”, “bab”, “aac”, “aab”, “abb” 和 “aba”。
可以暴力骗18分,其实是dp
暴力代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
string c;
unordered_set<string>S;
S.insert(s);
int l=s.length();
for(int i=0; i<l; i++)
for(int j=i; j<l; j++)
for(int k=j; k<l; k++

该问题探讨了一个由小写字母组成的字符串,在最多删除3个字符后可能产生的不同字符串个数。输入是一个长度在[4, 10^6]范围内的字符串,输出是删除3个字符后的不同字符串数量。示例中,字符串'ababcc'删除0到3个字符后能得到25种不同的字符串。解决方案包括暴力方法和动态规划(DP)思路。"
108053312,9312982,Spring Boot入门:创建与运行简单程序,"['Spring Boot', 'Java', 'Maven']
最低0.47元/天 解锁文章
662

被折叠的 条评论
为什么被折叠?



