码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 14. Longest Common Prefix

时间:2017-12-03 15:35:06      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:mon   return   string   复杂   for   ==   自己   function   fun   

Write a function to find the longest common prefix string amongst an array of strings.

 

题目的描述很简单,就是求多个字符串公共前缀,其实可以考虑先对字符向量用sort()进行排序,然后从前向后遍历,复杂度为O(S) + O(n*logn),n是字符串的数量,S为整个字符向量中所有的字符数量,这也就是“横向遍历”。

我在这里采用的是“纵向遍历”,也就是先比较每个字符串第一个字符,在比较每个字符串第二个字符……以此类推,设定一定的终止条件,然后返回公共前缀,代码如下:

 1 class Solution {
 2 public:
 3     string longestCommonPrefix(vector<string>& strs) {
 4      //经过自己的思考以及参考别人的代码,我最终得到了这一版本
 5         if (strs.size()==0) return "";
 6         for (int i=0; i<strs[0].length(); i++)
 7             for (int j=0; j<strs.size(); j++)
 8                 if (strs[0][i]!=strs[j][i])   //这里的if语句里面的内容其实没必要太过于复杂,只需要写一条这样的判断就够了
 9                     return strs[0].substr(0, i);
10         return strs[0];
11     }
12 };
  • 时间复杂度:O(S),S为字符向量中所有字符数量
  • 空间复杂度:O(1)

LeetCode 14. Longest Common Prefix

标签:mon   return   string   复杂   for   ==   自己   function   fun   

原文地址:http://www.cnblogs.com/dapeng-bupt/p/7966088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!