【问题标题】:To remove duplicate word in a string in php在php中删除字符串中的重复单词
【发布时间】:2010-08-20 19:04:37
【问题描述】:

我想删除字符串中的重复单词。

例如:

$str="oneone";(不含空格)

我想删除重复项并显示为一个。

谁能给我建议一个解决方案?

【问题讨论】:

  • 没有词的界限,很难定义什么是重复的:“queuequeue”。另外,@there,正是因为没有单词边界,所以这不是链接问题的重复。
  • 没有空格?您应该定义一个最小的 wordl 长度,因为“o”将与“one”和“one”相同的另一个“o”重复
  • 即使你能想出一个算法来比较最长的非重复序列,你仍然需要根据语言找出这些序列是否包含真正的重复,例如“neoneone”包含单词“neo”、“one”、“eon”、“neon”或“on”。代码如何决定是否应该删除“oneone”或“eoneon”或“neoneo”?决定这一点需要对上下文进行语义和句法分析。祝你好运。
  • 附加说明:您在此站点上提出了 9 个问题,但未接受任何答案。这不会激励人们去关心(尤其是当你为我们提供的意见如此之少时)。所以我可以建议你回到以前的问题并接受一些答案吗?

标签: php string duplicates


【解决方案1】:

我不确定你在问什么。正如其他人所说,很难删除所有重复项。但是,如果您只想要只包含重复项的单词(例如,您想将“oneone”更改为“one”,但保留“everyoneone”),最简单的做法是检查带有偶数的单词字母的数量,其中后半部分与前半部分相同。

将文本拆分为单词,并为每个单词执行类似的操作

$length = strlen($word);
if (! $length % 2 && substr($word, 0, $length / 2) == substr($word, ($length / 2) + 1, $length /2))
    $word = substr($word, 0, $length / 2);

【讨论】:

    猜你喜欢
    • 2012-03-14
    • 1970-01-01
    • 2013-12-15
    • 2018-07-31
    • 1970-01-01
    • 2013-08-11
    • 2013-05-26
    相关资源
    最近更新 更多