如何删除字符串内重复词组.

leyan728 2005-12-21 03:01:42
字符串如下:
-------------------------------------------------------
04:00:00 讲述讲述2005—304
04:25:00 见证见证2005—327
04:55:00 探索.发现探索.发现2005—328
05:27:00 走近科学走近科学2005—332
06:00:00 整点新闻(30分钟)整点新闻(30分钟)2005.12.19
06:30:00 广告一套广告
-------------------------------------------------------
如何对上面字符串操作,使之形成如下形式:
-------------------------------------------------------
04:00:00 讲述2005—304
04:25:00 见证2005—327
04:55:00 探索.发现2005—328
05:27:00 走近科学2005—332
06:00:00 整点新闻(30分钟)2005.12.19
06:30:00 一套广告
-------------------------------------------------------
...全文
484 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fibona 2005-12-21
  • 打赏
  • 举报
回复
来个循环通过依次判断就行了嘛,如果这个字符或者词没有出现在结果字符串,把它进行拷过去,如果出现了就继续下一个词或者字符不就行了吗
擒兽 2005-12-21
  • 打赏
  • 举报
回复
mark
dh20156 2005-12-21
  • 打赏
  • 举报
回复
麻烦的说,要注意效率问题。
ice_berg16 2005-12-21
  • 打赏
  • 举报
回复
必须要分词了,
目前想到的,先分词,将词组保存成数组,同时包含该词出现的次数n,
然后循环,将所有词出现次数大于1的进行n-1次的文本替换处理,
xuzuning 2005-12-21
  • 打赏
  • 举报
回复
长度优先的最大概率分词法可以完成你的要求

至于“"广告一套广告" 为什么变成 "一套广告" 而不是"广告一套"”
不是重要的问题,
保留先出现的就是:广告一套
保留后出现的就是:一套广告

在“广告一套广告”中
广告 出现2次
一套 出现1次
告一、一套、套广 各出现1次
johnpanq 2005-12-21
  • 打赏
  • 举报
回复
词组的话应该至少两个字以上吧,应该是连续出现的重复吧?
要不然以下两个节目,要去掉一个科学了。
走近科学
科学与探索
先把问题具体话一点,可能还好解决。
zalvsa 2005-12-21
  • 打赏
  • 举报
回复
如果上面那个成立的话,那就顺序读取一个字符,再取判断在余下的字符串里是否存在,存在的话,该字符串就等于剩下的字符串了。
比如:广告一套广告
先读到广,再去判断在“告一套广告”是否存在广,有的话,就变成“告一套广告”,然后再抓告。
不过我觉得按照这种逻辑下来的话,最后剩下的字符串会怪怪的,可能会不符合中国人表达的方式。
再想
zalvsa 2005-12-21
  • 打赏
  • 举报
回复
不好判断吧。都几乎跟分词搜索的技术类似了。首先要分词。不然不好判断是不是重复了。比如
讲好话比不讲话好=》是否变成-》话好比不讲好?
还有很多。再想想,LZ这个问题真BT,哈哈:)
johnpanq 2005-12-21
  • 打赏
  • 举报
回复
是不是要连续的重复出现呀?
"广告一套广告" 为什么变成 "一套广告" 而不是"广告一套"
keaizhong 2005-12-21
  • 打赏
  • 举报
回复
这个难度太高了,我关注一下。。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧