题目:Write a function to find the longest common prefix string amongst an array of strings
解题思路:
主要思路如下:输入是一个字符串数组,对它进行纵向比较,从头开始将数组每一列中的字符进行比较,如果都相同,则添加到共有前缀字符串里(初始为空),否则,提前结束比较过程,并且输出共有前缀字符串。需要注意的是,不要访问到空的数组,所以需要做一个判断来排除这一情况。
代码如下:
#include<vector>
#include<string>
using namespace std;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
bool isEmpty = 0;
bool isEnd = 0;
string common = "";
if (strs.size() == 0) return "";
for (int i = 0; i < 100; i++) {
for (int j = 0 ; j < strs.size(); j++) {
if (strs[j][i] == 0) {
isEmpty = 1;
break;
}
if (strs[j][i] != strs[0][i]) {
isEnd = 1;
break;
}
}
if (isEmpty == 1)
break;
if (isEnd == 0)
common = common+strs[0][i];
else
break;
}
return common;
}
};