Skip to content

Latest commit

 

History

History
64 lines (49 loc) · 1.31 KB

longest_common_prefix.md

File metadata and controls

64 lines (49 loc) · 1.31 KB

Longest common prefix

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Example 1: Input: ["flower","flow","flight"] Output: "fl"

Example 2: Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings.

Note: All given inputs are in lowercase letters a-z.

class Solution {

    /**
     * @param String[] $strs
     * @return String
     */
    function longestCommonPrefix($strs) {
        $numOfStrings = count($strs);
        $prefix = '';
        $letters = [];

        if (! $numOfStrings) {
            return $prefix;
        }

        if ($numOfStrings < 2) {
            return $strs[0];
        }

        for ($i = 0, $y = 0;;) {
            if (! isset($letters[$y])) {
                $letters[$y] = 1;
            }

            if ($strs[$i][$y] !== '' && $strs[$i][$y] === $strs[$i + 1][$y]) {
                $letters[$y]++;

                if ($letters[$y] === $numOfStrings) {
                    $prefix .= $strs[$i][$y];
                    $i = 0;
                    $y++;
                    continue;
                }

                $i++;
                continue;
            }

            break;
        }

        return $prefix;
    }
}