题目描述:
编写一个函数来查找字符串数组中最长的公共前缀字符串。
解题思路:
字符串数组为空则返回””;
字符串数组不为空:以第一个字符串为参照,遍历第一个字符串的每个字符str[i],当其他字符串相同位置的字符,有一个与str[i]不相同(或其他字符串已结束),则退出遍历,返回之前相同的前缀;
若所有字符串全部相同,则最后返回第一个字符串即可。
(如,["abcd","abc","abd"],
第一个字符串的str[0][0]=’a’,str[1][0]=’a’,str[2][0]=’a’,三个字符串的第0位都相等,继续遍历;
str[0][1]=’b’,所有字符串的第1位也都相等,继续遍历;
str[0][2]=’c’,而str[2][2]=’d’,出现不等,因此返回之前相等的前缀”ab”。)
代码实现:
class Solution {
public:
string longestCommonPrefix(vector& strs) {
if(strs.size() == 0) return "";
for(int i = 0; i
for(int j = 1; j
if(i >= strs[j].length() || strs[j][i] != strs[0][i])
return strs[0].substr(0, i);
return strs[0];
}
};
领取专属 10元无门槛券
私享最新 技术干货