开发者

What's the best way to remove duplicates from a string in PHP (or any language)?

I am looking for the best known algorithm for removing duplicates from a string. I can think of numerous ways of doing this, but I am looking for a solution that is known for being particularly efficient.

Let's say you have the following strings:

  • Lorem Ipsum Lor开发者_如何学Goem Ipsum
  • Lorem Lorem Lorem
  • Lorem Ipsum Dolor Lorem Ipsum Dolor Lorem Ipsum Dolor

I would expect this algorithm to output for each (respectively):

  • Lorem Ipsum
  • Lorem
  • Lorem Ipsum Dolor

Note, I am doing this in PHP, in case anybody is aware of any built in PHP functions that can help with this.

Thanks!


$arr = explode( " " , $string );
$arr = array_unique( $arr );
$string = implode(" " , $arr);


Dunno about efficiency, but maybe this can do:

$str = implode(" ", array_unique(explode(" ", $str)));


$words = array_unique(explode(' ',$text));
echo implode(' ',$words);

if you want to make it better you can use preg_split with \s\W for exploding words


Best way of doing it:

  1. Sort the words inside string
  2. Remove duplicates by iterating the sorted words

Other possibility is using a set construction if your language supports it.


You can try below code for removing duplicate code from any sentence

$arr = explode(" " , $string);
$arr = preg_replace('/(\w{2,})(?=.*?\\1)\W*/', '', $arr);
$string = implode(" " , $arr);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜