Home >Backend Development >PHP Tutorial >Algorithm collection of interview questions, algorithm collection of test questions_PHP tutorial

Algorithm collection of interview questions, algorithm collection of test questions_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:44:39867browse

A collection of algorithms for interview questions, a collection of algorithms for test questions

思路1:<span>
把A去重得到A1</span>,B去重得到B1,然后对A1,B1分别进行排序,然后遍历较短的字符串的每个字符是否存在于较长的字符串中,<span>存在则输出
问题</span>:
1.思路很简单,基本大家都会这么考虑,<span>但是面试的时候就没有亮点了
思路2</span>:<span>
假设AB串只包含小写(其实无所谓)</span>,那么创建一个数组,数组的key为a->z,<span>value都是0;
</span><?<span>php
    </span><span>function</span> stringToChar(<span>$str</span>,<span>$num</span>=1,<span>$tmp</span>=<span>null</span><span>){
        </span><span>if</span>(<span>empty</span>(<span>$tmp</span><span>)){
</span><span>$tmp</span>=<span>array</span>('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<span>);
        }
        </span><span>$arr_temp</span>=<span>str_split</span>(<span>$str</span>,1<span>);
        </span><span>foreach</span>(<span>$arr_temp</span> <span>as</span> <span>$v</span><span>){
            </span><span>if</span>(<span>$tmp</span>[<span>$v</span>]<<span>$num</span><span>){
                </span><span>$tmp</span>[<span>$v</span>]+=<span>$num</span><span>;
            }
        }
        </span><span>return</span> <span>$tmp</span><span>;
    }
    </span><span>function</span> getStringIntersect(<span>$str1</span>, <span>$str2</span><span>){
        </span><span>$temp</span>=stringToChar(<span>$str1</span>,1<span>);
        </span><span>//</span><span>$str2的$num用2 就是为了区分 stemp中的原来的1 是 $str1中设置的</span>
        <span>$temp</span>=stringToChar(<span>$str2</span>,2,<span>$temp</span><span>);
        </span><span>$result</span>=''<span>;
        </span><span>foreach</span> (<span>$temp</span> <span>as</span> <span>$key</span> => <span>$value</span><span>) {
            </span><span>if</span>(<span>$value</span>===3<span>){
                </span><span>$result</span>.=<span>$key</span><span>;
            }
        }
        </span><span>return</span> <span>$result</span><span>;
    }
    </span><span>$A</span>="common";<span>//</span><span>"hello";</span>
    <span>$B</span>="month";<span>//</span><span>"jeesite";</span>
    <span>$result</span>=getStringIntersect(<span>$A</span>, <span>$B</span><span>);
    </span><span>echo</span> <span>$result</span><span>;
</span>?><br />今天随便浏览网页的时候又发现了这篇文章(一次谷歌面试趣事)<br />我想起来了 思路二出自这篇文章。

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1048743.htmlTechArticleA collection of algorithms for interview questions, a collection of test question algorithms Idea 1: Remove duplicates from A to get A1, and remove duplicates from B to get B1 , then sort A1 and B1 respectively, and then iterate whether each character of the shorter string exists in...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn