# LeetCode 14. 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: strs = ["flower","flow","flight"]
Output: "fl"
```

**Example 2:**

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

**Constraints:**

* `0 <= strs.length <= 200`
* `0 <= strs[i].length <= 200`
* `strs[i]` consists of only lower-case English letters.

## Solution:

[English Version in Youtube](https://youtu.be/ukfzYlQPwsY)

[中文版解答Youtube Link](https://youtu.be/qdLc68w9X5c)

[中文版解答Bilibili Link](https://www.bilibili.com/video/BV1Rz4y127Bs/)

```
class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if (strs.empty()) {
            return "";
        }
        string prefix = strs[0];
        
        for (int i = 1; i < strs.size(); i++) {
            const string& str = strs[i];
            
            int k = 0;
            while (k < min(prefix.length(), str.length())) {
                if (prefix[k] != str[k]) {
                    break;
                }
                k++;
            }
            
            prefix = prefix.substr(0, k);
        }
        
        return prefix;
    }
};
```
