我想找到我需要做的最小删除次数,以便子字符串不再出现在给定的字符串中。字符串和子字符串都只由小写字母组成。
例如,对于字符串" recorerecore"和子串" recore"我需要2次删除。
对于字符串" recorecore"和子串" recore"我只需要1。
对于string" recorecorecorecore"和子串" recore"我需要2,第一和第三,或第二和第四。
对于字符串" rerecorecore"我需要拿出1,第二次出现,因为第一次出局会导致再次重新出现。
我只能想到蛮力解决方案,它涉及实际删除所有可能的组合并找到最小值,但这需要太长时间。
有没有人知道更快地做到这一点的方法?
答案 0 :(得分:0)
递归Boyer-Moore带有子串的字符串,并在找到它们时删除