// A C++ Program to find the longest
// common prefix
#include<bits/stdc++.h>
using namespace std;
// A Utility Function to find the common
// prefix between strings- str1 and str2
string commonPrefixUtil(string str1,
string str2)
{
string result;
int n1 = str1.length(),
n2 = str2.length();
// Compare str1 and str2
for (int i = 0, j = 0; i <= n1 - 1 &&
j <= n2 - 1; i++, j++)
{
if (str1[i] != str2[j])
break;
result.push_back(str1[i]);
}
return (result);
}
// A Function that returns the longest
// common prefix from the array of strings
string commonPrefix (string arr[], int n)
{
string prefix = arr[0];
for (int i = 1; i <= n - 1; i++)
prefix = commonPrefixUtil(prefix,
arr[i]);
return (prefix);
}
// Driver code
int main()
{
string arr[] = {"geeksforgeeks", "eeks",
"eek", "eekzer"};
int n = sizeof(arr) / sizeof(arr[0]);
string ans = commonPrefix(arr, n);
if (ans.length())
printf ("The longest common prefix is - %s",
ans.c_str());
else
printf("There is no common prefix");
return (0);
}
Ly8gQSBDKysgUHJvZ3JhbSB0byBmaW5kIHRoZSBsb25nZXN0Ci8vIGNvbW1vbiBwcmVmaXgKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEEgVXRpbGl0eSBGdW5jdGlvbiB0byBmaW5kIHRoZSBjb21tb24KLy8gcHJlZml4IGJldHdlZW4gc3RyaW5ncy0gc3RyMSBhbmQgc3RyMgpzdHJpbmcgY29tbW9uUHJlZml4VXRpbChzdHJpbmcgc3RyMSwKCQkJCQkJc3RyaW5nIHN0cjIpCnsKCXN0cmluZyByZXN1bHQ7CglpbnQgbjEgPSBzdHIxLmxlbmd0aCgpLAoJCW4yID0gc3RyMi5sZW5ndGgoKTsKCgkvLyBDb21wYXJlIHN0cjEgYW5kIHN0cjIKCWZvciAoaW50IGkgPSAwLCBqID0gMDsgaSA8PSBuMSAtIDEgJiYKCQkJaiA8PSBuMiAtIDE7IGkrKywgaisrKQoJewoJCWlmIChzdHIxW2ldICE9IHN0cjJbal0pCgkJCWJyZWFrOwoJCXJlc3VsdC5wdXNoX2JhY2soc3RyMVtpXSk7Cgl9CgoJcmV0dXJuIChyZXN1bHQpOwp9CgovLyBBIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgbG9uZ2VzdAovLyBjb21tb24gcHJlZml4IGZyb20gdGhlIGFycmF5IG9mIHN0cmluZ3MKc3RyaW5nIGNvbW1vblByZWZpeCAoc3RyaW5nIGFycltdLCBpbnQgbikKewoJc3RyaW5nIHByZWZpeCA9IGFyclswXTsKCglmb3IgKGludCBpID0gMTsgaSA8PSBuIC0gMTsgaSsrKQoJCXByZWZpeCA9IGNvbW1vblByZWZpeFV0aWwocHJlZml4LAoJCQkJCQkJCWFycltpXSk7CglyZXR1cm4gKHByZWZpeCk7Cn0KCi8vIERyaXZlciBjb2RlCmludCBtYWluKCkKewoJc3RyaW5nIGFycltdID0geyJnZWVrc2ZvcmdlZWtzIiwgImVla3MiLAoJCQkJCSJlZWsiLCAiZWVremVyIn07CglpbnQgbiA9IHNpemVvZihhcnIpIC8gc2l6ZW9mKGFyclswXSk7CglzdHJpbmcgYW5zID0gY29tbW9uUHJlZml4KGFyciwgbik7CgoJaWYgKGFucy5sZW5ndGgoKSkKCQlwcmludGYgKCJUaGUgbG9uZ2VzdCBjb21tb24gcHJlZml4IGlzIC0gJXMiLAoJCQkJYW5zLmNfc3RyKCkpOwoJZWxzZQoJCXByaW50ZigiVGhlcmUgaXMgbm8gY29tbW9uIHByZWZpeCIpOwoKCXJldHVybiAoMCk7Cn0K