#include <iostream>
#include <algorithm>
std::string longestCommonPrefix(std::string arr[], int size) {
if (size == 0)
return "";
if (size == 1)
return arr[0];
sort(arr, arr + size);
int min_length = std::min(arr[0].size(), arr[size - 1].size());
std::string first = arr[0], last = arr[size - 1];
int i = 0;
while (i < min_length && first[i] == last[i])
i++;
return first.substr(0, i);
}
int main() {
std::string arr[] = {"cartography", "carburettor", "carbonating"};
std::cout << "Longest common prefix: " << longestCommonPrefix(arr, sizeof(arr)/sizeof(*arr));
return 0;
}
/*
run:
Longest common prefix: car
*/