面試題之演算法集錦

來源:互聯網
上載者:User
  1. 有字串A,B,求取AB字串中都含有的字元,例如:①A="hello",B="jeesite",那麼輸出"e",②A="common",B="month",則輸出"mno",輸出串的順序沒有要求.

思路1:把A去重得到A1,B去重得到B1,然後對A1,B1分別進行排序,然後遍曆較短的字串的每個字元是否存在於較長的字串中,存在則輸出問題:1.思路很簡單,基本大家都會這麼考慮,但是面試的時候就沒有亮點了思路2:假設AB串只包含小寫(其實無所謂),那麼建立一個數組,數組的key為a->z,value都是0;php    function stringToChar($str,$num=1,$tmp=null){        if(empty($tmp)){$tmp=array('a'=>0,'b'=>0,'c'=>0,'d'=>0,'e'=>0,'f'=>0,'g'=>0,'h'=>0,'i'=>0,'j'=>0,'k'=>0,'l'=>0,'m'=>0,'n'=>0,'o'=>0,'p'=>0,'q'=>0,'r'=>0,'s'=>0,'t'=>0,'u'=>0,'v'=>0,'w'=>0,'x'=>0,'y'=>0,'z'=>0);        }        $arr_temp=str_split($str,1);        foreach($arr_tempas$v){            if($tmp[$v]<$num){                $tmp[$v]+=$num;            }        }        return$tmp;    }    function getStringIntersect($str1, $str2){        $temp=stringToChar($str1,1);        //$str2的$num用2 就是為了區分 stemp中的原來的1 是 $str1中設定的$temp=stringToChar($str2,2,$temp);        $result='';        foreach ($tempas$key => $value) {            if($value===3){                $result.=$key;            }        }        return$result;    }    $A="common";//"hello";$B="month";//"jeesite";$result=getStringIntersect($A, $B);    echo$result;?>

以上就介紹了面試題之演算法集錦,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.