标签(空格分隔): leetcode 简单编程
Write a function to find the longest common prefix string amongst an array of strings.
拿出第一个字符串,从其第0个位置开始,看能和其余的字符串均连续匹配的字符有几个:
class Solution { public: string longestCommonPrefix(vector<string>& strs) { if (strs.empty()) { return ""; } string& fstStr = strs[0]; string::size_type i = 0; for (; i < fstStr.size(); ++i) { bool isBreak = false; for (vector<string>::size_type j = 1; j < strs.size(); ++j) { if (strs[j].size() <= i || strs[j][i] != fstStr[i]) { isBreak = true; break; } } if (isBreak) { break; } } return fstStr.substr(0, i); } };循环嵌套时使用goto直接跳出
class Solution { public: string longestCommonPrefix(vector<string>& strs) { if (strs.empty()) { return ""; } string& fstStr = strs[0]; string::size_type i = 0; for (; i < fstStr.size(); ++i) { for (vector<string>::size_type j = 1; j < strs.size(); ++j) { if (strs[j].size() <= i || strs[j][i] != fstStr[i]) { goto RetLabel; } } } RetLabel: return fstStr.substr(0, i); } };