15 Jun 2024C++ / Python / TypeScriptEasy

Longest Common Prefix

Collected C++, Python, TypeScript solutions for longest common prefix. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Longest Common Prefix. the solution files are available below.

solution files

  • C++ longest-common-prefix/synced-solution.cpp
  • Python longest-common-prefix/synced-solution.py
  • TypeScript longest-common-prefix/synced-solution.ts

Solution files

Pythonlongest-common-prefix/synced-solution.py
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs: return class="syntax-string">""
        prefix = strs[class="syntax-number">0]
        for s in strs[class="syntax-number">1:]:
            while not s.startswith(prefix):
                prefix = prefix[:-class="syntax-number">1]
                if not prefix: return class="syntax-string">""
        return prefix
C++longest-common-prefix/synced-solution.cpp
class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if (strs.empty()) return class="syntax-string">"";
        string prefix = strs[class="syntax-number">0];
        for (auto& s : strs) {
            while (s.find(prefix) != class="syntax-number">0) {
                prefix = prefix.substr(class="syntax-number">0, prefix.size()-class="syntax-number">1);
                if (prefix.empty()) return class="syntax-string">"";
            }
        }
        return prefix;
    }
};
TypeScriptlongest-common-prefix/synced-solution.ts
function longestCommonPrefix(strs: string[]): string {
    if (!strs.length) return class="syntax-string">"";
    let prefix = strs[class="syntax-number">0];
    for (const s of strs) {
        while (!s.startsWith(prefix)) {
            prefix = prefix.slice(class="syntax-number">0, -class="syntax-number">1);
            if (!prefix) return class="syntax-string">"";
        }
    }
    return prefix;
}