标签:
class Solution { public: std::string longestCommonPrefix(std::vector<std::string>& strs) { //如果为空,直接返回空字符串 if (strs.size() == 0) { return ""; } std::string result = ""; //寻找最小长度的字符串,防止越界 auto minSize = strs[0].size(); for (auto &a : strs) { if (a.size() < minSize) { minSize = a.size(); } } //以最小长度的字符串为外循环(因为最长的公共前缀不会长于最小长度的字符串) //每次检查所有的字符串是否相等 for (int i = 0; i < minSize; ++i) { for (int j = 0; j + 1 < strs.size(); ++j) { if (strs[j][i] != strs[j + 1][i]) { //如果有一个不相等则已经没有必要再检查下去 return result; } } result += strs[0][i]; //如果都相等则将本次扫描的字符加在结果串上 } return result; } };
LeetCode之14---Longest Common Prefix
标签:
原文地址:http://blog.csdn.net/jung_zhang/article/details/51112663