题目描述
在一组字符串中,找出最长的前缀。
题目分析
将字符串数组想象为二维数组,然后按列遍历,直到某行缺失或不同。
代码
#include <iostream>
#include <vector>
class Solution {
public:
std::string longestCommonPrefix(std::vector<std::string>& strs) {
if (strs.size() == 0) {
return std::string("");
}
int ptr = -1;
bool flag = true;
while (flag) {
++ptr;
for (unsigned i = 0; i < strs.size(); ++i) {
if (ptr >= strs[i].length()) {
flag = false;
break;
}
if (i == 0) {
continue;
}
if (strs[i][ptr] != strs[i-1][ptr]) {
flag = false;
break;
}
}
}
//std::cout << ptr << std::endl;
return strs[0].substr(0, ptr);
}
};
总结
代码从本上敲到电脑上时,敲错了。
近期评论