leetcode之路014 Longest Common Prefix

来源:互联网 发布:学党史知国情征文 编辑:程序博客网 时间:2024/06/05 14:09


题目大意:找到一个字符串数组的最大公共前缀字符。挺简单的一个题,求解如下。

思路:对第一个第二个字符串,找到最长前缀为te,然后找te和第三个的最长前缀,依次循环到最后即可。循环中加入判断te是否为空,若为空直接返回空。

提交ac的代码如下,运行时间8ms:

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {if(strs.size()==0)return "";string te1=strs[0];for(int i=1;i<strs.size();++i){int j=0;  while(te1[j]==strs[i][j]&&j<te1.length()&&j<strs[i].length())++j;te1=te1.substr(0,j);if(te1.size()==0)return "";}return te1;    }};


不过讨论区还有一种方式,从strs[0][0] to strs[i][0]进行比对,即垂直方向进行比对,对这种两种方式,垂直方向比较更快一些。原因是,假设前面所有字符串都相同为“abcdefgh”,最后一个不同为“cdfrg”,此时水平方式需要比较到最后才行。因此垂直方式更快一些。

0 0
原创粉丝点击