> For the complete documentation index, see [llms.txt](https://anton-veselskyi.gitbook.io/codding-problems-solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anton-veselskyi.gitbook.io/codding-problems-solutions/leetcode/easy/longest-common-prefix.md).

# Longest Common Prefix

## [Longest Common Prefix](https://leetcode.com/problems/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.

## Solutions

### 🧠 Cpp

```cpp
class Solution
{
public:
    string longestCommonPrefix(vector<string>& strs)
    {
        if(strs.empty())
            return "";

        string res = "";  
        bool keep_going = true;
        size_t first_str_size = strs[0].size(); 
        for(size_t i = 0; keep_going && i < first_str_size; i++)
        {
            char ch = strs[0][i];

            for(auto &str : strs)
                if(str.size() <= i || str[i] != ch)
                    keep_going = false;

            if(keep_going)
                res+=ch;      
        }

        return res;
    }
};
```
