#include <string>
#include <vector>
#include <iostream>
std::string CommonPrefix(const std::vector<std::string>& words) {
std::string result = "";
int lenght = words.size();
if (lenght == 1) {
result = words[0];
} else {
for (int i = 0; i < lenght; ++i) {
if (i == 0) {
int j = 0;
while ((j < words[i].size()) && (j < words[i + 1].size()) && (words[i][j] == words[i + 1][j])) {
result.push_back(words[i][j]);
++j;
}
++i;
} else {
std::string temp = "";
int t = 0;
while ((t < words[i].size()) && (t < result.size()) && (words[i][t] == result[t])) {
temp.push_back(words[i][t]);
++t;
}
result = temp;
}
}
}
return result;
}
int main() {
std::vector<std::string> v = {"abcdefg", "abcd"};
std::cout << CommonPrefix(v) << std::endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKCnN0ZDo6c3RyaW5nIENvbW1vblByZWZpeChjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIHdvcmRzKSB7CiAgICBzdGQ6OnN0cmluZyByZXN1bHQgPSAiIjsKICAgIGludCBsZW5naHQgPSB3b3Jkcy5zaXplKCk7CiAgICBpZiAobGVuZ2h0ID09IDEpIHsKICAgICAgICByZXN1bHQgPSB3b3Jkc1swXTsKICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5naHQ7ICsraSkgewogICAgICAgICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICBpbnQgaiA9IDA7CiAgICAgICAgICAgICAgICB3aGlsZSAoKGogPCB3b3Jkc1tpXS5zaXplKCkpICYmIChqIDwgd29yZHNbaSArIDFdLnNpemUoKSkgJiYgKHdvcmRzW2ldW2pdID09IHdvcmRzW2kgKyAxXVtqXSkpIHsKICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaF9iYWNrKHdvcmRzW2ldW2pdKTsKICAgICAgICAgICAgICAgICAgICArK2o7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICArK2k7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyB0ZW1wID0gIiI7CiAgICAgICAgICAgICAgICBpbnQgdCA9IDA7CiAgICAgICAgICAgICAgICB3aGlsZSAoKHQgPCB3b3Jkc1tpXS5zaXplKCkpICYmICh0IDwgcmVzdWx0LnNpemUoKSkgJiYgKHdvcmRzW2ldW3RdID09IHJlc3VsdFt0XSkpIHsKICAgICAgICAgICAgICAgICAgICB0ZW1wLnB1c2hfYmFjayh3b3Jkc1tpXVt0XSk7CiAgICAgICAgICAgICAgICAgICAgKyt0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXN1bHQ7Cn0KCgoKaW50IG1haW4oKSB7CiAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdiA9IHsiYWJjZGVmZyIsICJhYmNkIn07CiAgICBzdGQ6OmNvdXQgPDwgQ29tbW9uUHJlZml4KHYpIDw8IHN0ZDo6ZW5kbDsKfQ==