前缀"/>
力扣:求最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串
示例1:
输入: strs = ["flower", "flow" , "flight"]
输出: "fl"
示例2:
输入: strs = ["dog","racecar","car"]
输出:
1111
解释:输入不存在公共前缀。
答案里面纵向扫描,依次遍历每个字符串,更新最长公共前缀。首先还是熟悉的操作,声明一个 类,这个类叫Solution,定一个一个共有成员,String longestCommonPrefix,首先要判断字符串是否为空,用一个变量存储字符串的大小,并且遍历第一个字符串的数组,并且把第一个字符串的i个字符存储到变量,那么去用第一个字符串的i个字符去与其他字符串进行判断,如果其他字符串(比如第j个)如果当前字符串的第i个索引等于j个字符串长度或者不等于第j个字符串的第i个索引,那么就返回前面的索引。
#include <iostream>
#include <vector>
#include <string>using namespace std;class Solution {
public:string longestCommonPrefix(vector<string>& strs) {if (strs.empty()) {return "";}int length = strs[0].size();int count = strs.size();for (int i = 0; i < length; ++i) {char c = strs[0][i];for (int j = 1; j < count; ++j) {if (i == strs[j].size() || strs[j][i] != c) {return strs[0].substr(0, i);}}}return strs[0];}
};int main() {vector<string> strs = {"flower", "flow", "flight"};Solution sol;cout << sol.longestCommonPrefix(strs) << endl;return 0;
}
更多推荐
力扣:求最长公共前缀
发布评论