题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
示例1 : 输入 [“a”,“b”] 输出 “”
一、水平扫描法:在线处理,不断调整公共前缀的长度
class Solution { public: /** * * @param strs string字符串vector * @return string字符串 */ string longestCommonPrefix(vector<string>& strs) { // write code here //只有一个字符串或者字符串数字为空时 if(strs.empty()) return ""; else if(strs.size()==1) return strs[0]; //字符串对比 int len=0,tmp=0; for(int i=0;i<strs.size()-1;i++){ for(int j=0;j<strs[i].size()&&j<strs[i+1].size();j++){ if(strs[i][j]==strs[i+1][j]){ tmp++; } else break; } if(i==0) len=tmp; else len=min(len,tmp); tmp=0; } //任意返回一个字符串的最长公共前缀 return strs[0].substr(0,len); } };二、垂直扫描法:按列扫描,先验证所有字符串的第一个元素