【数据结构】线性处理字符串中指定字串的个数问题
一、问题引入
给出一个长度为n的字符串S和一个长度为m的不含重复字符的字符串T,每次你可以在S中删除一个等于T的子序列,最多可以删除多少次? 如字符串S=ababccd,T=abc,可以选择s1s2s5,s1s2s6,s1s4s5,s1s4s6,s3s4s5,s3s4s6进行删除,删除后分别得到abcd,abcd,bacd,bacd,abcd,abcd。 如果删除后得到abcd,则还可以再进行一次删除,最多可以删除2次。 这里注意,字符串T种只会包含小写字母以及T中不会出现重复的字符
二、问题分析
提炼一下本题的意思,我们可以把本题精炼为求字符串S的字串中,在每个字符不能重复出现的条件下的子串中字符串T的个数。比如在上文的例子中,ababccd中的abc就只有2个,因此答案为2。
三、解法分析
1.暴力求解
如果我们通过暴力求解的思路来求解这个问题的话,我们需要枚举S中的每一个字符作为起点,之后如果与
共有 0 条评论