Source: Internet
Author: User

The original topic is this: Write a function to find the longest common prefix in a string array. Returns an empty string "" If there is no public prefixExample 1:

Input: ["Flower", "flow", "flight"]

Output: "FL"

Example 2:

Input: ["dog", "racecar", "car"]

Output: ""

Explanation: The input does not exist with a public prefix.

Description

All inputs contain only lowercase letters A-Z.

//code show as below Class test { Public function a6($arr) { / / Get the first value in the string array, based on the value of this element, the elements after the array are compared with this $common_str= $arr[0]; / / Traverse the array, cut each string into an array, after cutting is such an array (0 => array (), 1 => array () ... n => array ()), you can put The result is considered to be a matrix. The number of rows in the matrix is how many strings, that is, the subscripts of the incoming array. The number of columns is the index of the array after each string is cut. Foreach ($arr as $key=>$value) { $arr[$key] = str_split($value); } //here, $arr has become a two-dimensional array $length = count($arr); $temp = $arr[0]; //Because we want to compare each string to the first one of the incoming array, we take the first one as a base value. $len = count($temp); //The $i in this for loop is the column of the matrix, so that the ith bit of each substring array can be fetched. For ($i=0;$i<$len;$i++) { //The $n in the for loop is the row of the matrix, which is the subscript of the incoming string array. For ($n=1; $n<$length; $n++) { / / If the ith bit of the base value is not equal to the i-th bit of the following string, intercept the base string to the ith bit If($temp[$i]!=$arr[$n][$i]) { // Of course, there is a special case here, that is, when comparing the 0th bit to the end, it will be off, then it will return without the same prefix. If($i == 0) { Return "no identical prefix"; } Return substr($common_str,0,$i); } } / / Here the judgment is to add the base string traversal completed, all the same, then we return the base string If ($i==$len-1) { Return $commen_str; } } } }

PHP (5) "Longest common prefix" algorithm problem