求解一个字符串切分的算法问题
现有一个包含100万个字符串(可能包含空格等各种字符,一行代表一个字符串)的数据库,给你一个新的字符串S,请将S进行切分,如果切分后的S的某一个子串在数据库中存在,则称S的该子串的部分被覆盖,要求:
1、切分后的S被覆盖率最高
2、在1的前提下,对S的切分数最少
请给出数据结构和算法,并分析时间复杂度。
大家有什么时间复杂度比较低的解决方案么?洗耳恭听~~~ :)
1、切分后的S被覆盖率最高
2、在1的前提下,对S的切分数最少
请给出数据结构和算法,并分析时间复杂度。
大家有什么时间复杂度比较低的解决方案么?洗耳恭听~~~ :)
...全文
相关推荐
C++编程系列之动态切分窗口
在C++编程中,"动态切分窗口"是一种高级算法技术,常见于数据结构和算法竞赛,以及实际软件开发中的复杂问题求解。
算法学习之暴力求解
暴力求解(brute force) Brute force is a straightforward approach to solving a problem, usually directly based on the problem statement and definitions of the concepts involved. 暴力求解即根据问题的描述和定义直接求解,不使用一些特殊
面试常见基础算法题总结
**贪心算法与动态规划**:贪心算法在每一步选择最优解,不考虑全局最优,适合于问题可以局部最优解导出全局最优解的情况。动态规划则是先求解子问题,保存结果,逐步构建全局最优解。4.
C语言求解最长公共子字符串问题及相关的算法分析
"C语言求解最长公共子字符串问题,涉及动态规划算法分析。"在计算机科学中,求解最长公共子序列(Longest Common Subsequence, LCS)是一个经典的问题,它涉及到字符串处理
分享Python切分字符串的一个不错方法
在Python编程中,处理字符串时,遇到无明显分隔符的情况切分字符串是一项常见的任务。例如,同事提出了一个问题,希望将字符串"abcdefghijklmn"按照每四个字符为一段进行分割,且剩余部分单独


