题解 | #最长公共前缀#
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
#include <string>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param strs string字符串vector
* @return string字符串
*/
static bool isINstring(string substring, string str) {
if (substring == str.substr(0, substring.length())) {
return true;
}
return false;
}
string longestCommonPrefix(vector<string>& strs) {
// write code here
int length = strs.size();
unsigned int minLength = ~0, i = 0, minIndex = 0;
while (i < length) {
if (minLength > strs[i].length()) {
minLength = strs[i].length();
minIndex = i;
}
i++;
}
int end = minLength;
string output = "";
int maxld =0;
while (end > 0) {
for (i=0; i<strs.size(); i++) {
if (i == minIndex) {
if (strs.size() == 1) {
output = strs[minIndex];
}else {
continue;
}
}
if(Solution::isINstring(strs[minIndex].substr(0,end), strs[i])){
if (maxld < strs[minIndex].substr(0,end).length()) {
output = strs[minIndex].substr(0,end);
maxld = strs[minIndex].substr(0,end).length();
}
}
else {
maxld = 0;
}
}
end--;
}
return output;
}
};

安克创新 Anker公司福利 817人发布