这个解决方案可以改进吗?

时间:2017-01-09 05:59:48

标签: php string comparison

我编写了一个PHP代码,用于查找两个字符串中的常用字母。目前,它的复杂性为O(n^2),可以进行优化。

<?php

$b="AMITABH BACHHAN";
$a="RAJNIKANTH";

$cmnlet="";
for($i=0;$i<strlen($a);$i++)
{  
   for($j=0;$j<strlen($a);$j++)
   {
       //echo "a=".$a[$i]." b=".$b[$j];
       if((strcmp($a[$i],$b[$j]))==0)
       {

            $cmnlet.=$a[$i];
            //echo "commonletter ".$cmnlet;
       }    
    }
}

echo (implode(array_unique( str_split($cmnlet))));
?>

1 个答案:

答案 0 :(得分:1)

$as = str_split ( $a, 1);
$bs = str_split ( $b, 1);
$result = implode(array_intersect($as, $bs));

按照@Gougata Bose的建议进行编辑:

$result = implode(array_unique(array_intersect($as, $bs)));