社区
数据结构与算法
帖子详情
求解一个字符串切分的算法问题
njucs
2008-11-21 04:03:04
现有一个包含100万个字符串(可能包含空格等各种字符,一行代表一个字符串)的数据库,给你一个新的字符串S,请将S进行切分,如果切分后的S的某一个子串在数据库中存在,则称S的该子串的部分被覆盖,要求:
1、切分后的S被覆盖率最高
2、在1的前提下,对S的切分数最少
请给出数据结构和算法,并分析时间复杂度。
大家有什么时间复杂度比较低的解决方案么?洗耳恭听~~~ :)
...全文
379
11
打赏
收藏
求解一个字符串切分的算法问题
现有一个包含100万个字符串(可能包含空格等各种字符,一行代表一个字符串)的数据库,给你一个新的字符串S,请将S进行切分,如果切分后的S的某一个子串在数据库中存在,则称S的该子串的部分被覆盖,要求: 1、切分后的S被覆盖率最高 2、在1的前提下,对S的切分数最少 请给出数据结构和算法,并分析时间复杂度。 大家有什么时间复杂度比较低的解决方案么?洗耳恭听~~~ :)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
njucs
2008-11-24
打赏
举报
回复
[Quote=引用 9 楼 hityct1 的回复:]
请解释一下 覆盖率 吧?怎么计算的?不像是 词频。
[/Quote]
假设现在数据库中有以下短语:
A
B
C
E
F
G
ABC
CDE
EFG
那么,对句子ABCDEFG的切分应该就是:
A B CDE F G (虽然切分次数多,但所有词语都已经被覆盖:覆盖率100%)
而不是
ABC D EFG (D没有被覆盖:覆盖率6/7)
njucs
2008-11-22
打赏
举报
回复
[Quote=引用 5 楼 litaoye 的回复:]
感觉就像在做搜索的分词,一般都是找最长的匹配,很少有lz这样找最大覆盖的。
[/Quote]
1、最大覆盖
2、在1的前提下切分最少
3、在1、2的前提下选择最长匹配
woshiwoxinheqiu
2008-11-22
打赏
举报
回复
完全不懂~~~~~
不过会学习的,现在帮忙顶~~~~
hityct1
2008-11-22
打赏
举报
回复
请解释一下 覆盖率 吧?怎么计算的?不像是 词频。
njucs
2008-11-22
打赏
举报
回复
[Quote=引用 7 楼 hityct1 的回复:]
你是在做分词吗?
[/Quote]
很像是分词,但并不完全一样吧
hityct1
2008-11-22
打赏
举报
回复
你是在做分词吗?
绿色夹克衫
2008-11-21
打赏
举报
回复
感觉就像在做搜索的分词,一般都是找最长的匹配,很少有lz这样找最大覆盖的。
大王派我去巡山
2008-11-21
打赏
举报
回复
同时要求最小切分很容易,只要在上面的算法中稍加调整,当覆盖率一样的时候优先取分割数少的方案就可以。
njucs
2008-11-21
打赏
举报
回复
这样是可以求出最大覆盖率,但是要从最大覆盖率的所有情况中选择切分数最小的切法,应该还有不少困难
我考虑是不是可以转化为图的算法,比如在一个连通图中,最佳的切分应该就是起点到终点的最短路径吧?
具体的还没有考虑清楚,不过这样复杂度应该还是很高,而且前期的预处理工作需要耗费大量时间。
[Quote=引用 1 楼 dlyme 的回复:]
先将这一百万字符串顺序排列。
假设S的长度为n,我们用dp(i)来表示从第i个字符到第n个字符这段子串中被覆盖的最大字符数。
下面来看状态转移方程如何处理:
首先来看S[i~n]这个子串中有没有与数据库中匹配起来的“前缀”;
如果没有
{
dp[i]=dp[i+1];
}
如果有(假设满足匹配的“前缀”共有k个,用T[j]来表示,1 <=j <=k)
{
dp[i]=max{ dp[i+1],max{sizeof(T[j])+dp(i+sizeof(T[j])),这里1 <=…
[/Quote]
qap22
2008-11-21
打赏
举报
回复
帮顶
大王派我去巡山
2008-11-21
打赏
举报
回复
先将这一百万字符串顺序排列。
假设S的长度为n,我们用dp(i)来表示从
第i个字符到第n个字符
这段子串中被覆盖的最大字符数。
下面来看状态转移方程如何处理:
首先来看S[i~n]这个子串中有没有与数据库中匹配起来的“前缀”;
如果没有
{
dp[i]=dp[i+1];
}
如果有(假设满足匹配的“前缀”共有k个,用T[j]来表示,1<=j<=k)
{
dp[i]=max{ dp[i+1],max{sizeof(T[j])+dp(i+sizeof(T[j])),这里1<=j<=k} }
}
算法
大全(全)
算法
大全(全)
算法
必须好好学,很有用,程序员的差距在
算法
上
ACM
算法
题集 基础
算法
教案
ACM题目分类 基础
算法
教案
算法
设计题集
iOS 面试必看
算法
题
iOS 面试的要求正在逐步提高,对于
算法
的要求也在逐步提升,这个文件带领你学习iOS
算法
。让你直通BATJ
动态规划(
算法
)-代码
动态规划(
算法
)-代码 动态规划(
算法
)-代码
算法
设计与分析——清华大学王晓东
算法
设计与分析——清华大学王晓东
算法
设计与分析——清华大学王晓东
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章