题目:
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
。
示例:
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
思路:
先找出最小长度的,然后每个字符串匹配。O(n)
class Solution { public: string longestCommonPrefix(vector<string>& strs) { int size=strs.size(); if(size==0) return ""; int min=strs[0].size(); for(int i=0;i<size;i++) if(strs[i].size()<min) min=strs[i].size(); if(min==0) return ""; int j=0; for(;j<min;j++) { char temp=strs[0][j]; for(auto &s:strs) { if(s[j]!=temp) return string(strs[0].begin(),strs[0].begin()+j); } } return string(strs[0].begin(),strs[0].begin()+j); } };
原文地址:https://www.cnblogs.com/manch1n/p/10323957.html
时间: 2024-10-02 22:39:06