背景
本题测试二分思想的应用
描述
从键盘中读入一组字符串(第一个是字符串的个数),打印出最长的公共前缀字符串。
输入格式
一行输入,第一个是字符串的个数,后面是每个字符串。
输出格式
最长的公共前缀字符串
输入输出样例
输入 #1 复制
如果输入是:
4 geeksforgeeks geeks geek geezer
输出 #1 复制
那么输出是:
gee
背景
本题测试二分思想的应用
描述
从键盘中读入一组字符串(第一个是字符串的个数),打印出最长的公共前缀字符串。
输入格式
一行输入,第一个是字符串的个数,后面是每个字符串。
输出格式
最长的公共前缀字符串
输入输出样例
输入 #1 复制
如果输入是:
4 geeksforgeeks geeks geek geezer
输出 #1 复制
那么输出是:
gee
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (!strs.size()) {
return "";
}
string prefix = strs[0];
int count = strs.size();
for (int i = 1; i < count; ++i) {
prefix = longestCommonPrefix(prefix, strs[i]);
if (!prefix.size()) {
break;
}
}
return prefix;
}
string longestCommonPrefix(const string& str1, const string& str2) {
int length = min(str1.size(), str2.size());
int index = 0;
while (index < length && str1[index] == str2[index]) {
++index;
}
return str1.substr(0, index);
}
};