14. 最长公共前缀----LeetCode
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。


缝补丁式编码 想问题太简单 只考虑的题目给出的两种测试用例 出一次错修改一次代码
没考虑的测试用例 [""] ["a"] ["a","a"] ["ab","abcc"] ["a","a","b"]
希望以后考虑临界值全面一点
#include<iostream> #include <vector> using namespace std; class Solution { public: string longestCommonPrefix(vector<string>& strs) { if(strs.size()==0) { return ""; } if(strs.size()==1) { return strs[0]; } string ss=strs[0]; int len=ss.length(); int count=0; if(len==1) { for(int j=1; j<strs.size(); j++) { string sts=strs[j]; int lo=sts.find(ss); if(lo!=0) { return ""; } } return ss; } int eq=0; for(int i=1; i<=len; i++) { string scut=ss.substr(0,i); for(int j=1; j<strs.size(); j++) { string sts=strs[j]; if(sts==ss) { eq++; } int lo=sts.find(scut); if(lo!=0) { count=i; return ss.substr(0,count-1); } } count = i; } if(count=len){ return ss; } if(eq==strs.size()) { return ss; } return ""; } }; int main() { vector<string> strs= {"ab","abcc"}; //vector<string> strs= {"flow","flowl"}; Solution so; string re=so.longestCommonPrefix(strs); cout<<re; return 0; }
代码太繁琐仍需修改
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号