14. Longest Common Prefix

Problem


Tags: String

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:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] consists of only lowercase English letters.

Code

C

// 14. Longest Common Prefix (2/10/54140)
// Runtime: 0 ms (94.43%) Memory: 5.98 MB (36.53%) 

char* longestCommonPrefix (char* strs[], int size) {
    char* common = calloc(200, sizeof(char));
    
    for (int i = 0; i < 200; i++) {
        char c = strs[0][i];
        if (c == '\0') {
            break;
        }
        
        bool escape = false;
        for (int j = 1; j < size; j++) {
            if (strs[j][i] != c) {
                escape = true;
                break;
            }
        }
                
        if (escape) {
            break;
        }
        
        common[i] = c;
    }
                
    return common;
}