难题啊,请问怎么去除一维字符串数组中重复的内容和被包含的内容

浏览:1275 发布日期:2014/01/11 分类:求助交流
比如下面的数组中,既有重复的内容,又有被包含的内容,怎么去除这些重复的和被包含的内容呢?
原来数组:$str = Array(
    '0' => 'CONTROLLER',
    '1' => '或者',
    '2' => 'URL',
    '3' => '兼容',
    '4' => '考虑',
    '5' => '替换',
    '6' => '当前',
    '7' => '控制器',
    '8' => 'URL',
    '9' => '地址',
    '10' => '不含',
    '11' => '域名',
    '12' => '兼容机',
    '13' => '中华',
    '14' => '中华人民',
    '15' => '共和国',
    '16' => '中华人民共和国',
    '17' => '人民共和国',
    '18' => '共和'
);
通过某种运算得到最终数组$str1 = Array(
    '0' => 'CONTROLLER',
    '1' => '或者',
    '4' => '考虑',
    '5' => '替换',
    '6' => '当前',
    '7' => '控制器',
    '8' => 'URL',
    '9' => '地址',
    '10' => '不含',
    '11' => '域名',
    '12' => '兼容机',
    '16' => '中华人民共和国'
);
给出一个快速的运算方法,不用两层循环挨个比较,那样如果记录是10000条会受不了的。

下面给个9700词的附件,大家用于测试,把它直接打开放到字符串中用“,”切分,就成了测试用的数组,最终输出结果词数是3942即为程序算法正确,下一步就看速度了,小于5秒既是可选答案之一。(需要注意的是,最终数组结果的顺序与原数组顺序相同,如果你给数组排序了,还需要排回去。)

附件 string.zip ( 28.32 KB 下载:8 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>