作者bleed1979 (十三)
看板java
标题Re: [问题] 字串重复比对
时间Sat Dec 10 06:39:04 2011
※ 引述《aaagang (我...)》之铭言:
: 想要统计三个字串里面重复的单字
: A:我想要吃牛肉面,与可乐薯条
: B:我想要吃蕃茄牛肉饭与红茶
: C:我想要喝可乐就好。
: 最後结果是
: 我想要 3次
: 牛肉 2次
: 可乐 2次
: 一个字或重复不到2次就不统计
: 我知道在字串重头抓来比对字串就可以做,
: 但总觉得能有更聪明的做法,
: 希望能指导一下!谢谢。
因为自己造轮子,我写得很长,但如果拆开每个method来看,其实原理很简单。
只要你能写出比对一回合的写法,就可以"重复"比对出第二回合,一直继续下去。
输出结果是
我想要
我想要
我想要
牛肉
可乐
牛肉
可乐
其中"我想要"是在第一回合比出来的。
"牛肉"和"可乐"是第二回合比出来的。
所以,如果是四个句子,我的code就需要三回合的比对。
1.首先我重新排列字串,排序依照字元小到大,相等字元再排索引小到大的方式。
2.找出相同的字,因为已经排序过,只需要O(n)的比对。
3.输出最多重复的字,"我想要"重复二次,是第一回合的最多。
并回传"吃牛肉与可乐","牛肉","可乐"三个字串。
4.第3点的三个字串带入相同的method,进行第二回合比对,
"牛肉","可乐"是第二回合的最多。
5.结束。
程式码:
http://pastie.org/2993383
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.242.7
※ 编辑: bleed1979 来自: 114.25.242.7 (12/10 06:55)