ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

longest-common-prefix(最长公共前缀)

2019-09-02 19:40:35  阅读:286  来源: 互联网

标签:strs string 首部 单词 common prefix longest leetcode ta


 

https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47?tpId=46&tqId=29164&tPage=3&rp=3&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking

思路: 将字符串按字典排序。然后因为第一个单词和最后的一个单词的差别是最大的。首先比较这两个单词的首部,如果他们首部不同直接返回空!表示这些单词没有公共前缀。 

如果首部相同的话就继续比较下一位即可.........

 


class Solution {
public:
    string longestCommonPrefix(vector<string> &strs) {
        string res = "";
		int n = strs.size();
		if(n <= 0){
			return res;

		}
		//按字典排序
		sort(strs.begin(), strs.end());

		//最后一个单词和第一个单词的首字母不同
		//那么肯定不会有相同前缀了。
		if(strs[0][0] != strs[n - 1][0])
			return res;
		
		//取最小长度取比较
		int size = min(strs[0].length() , strs[n - 1].length() );

		//从头部比较每个字符
		for(int i = 0; i < size; i++){
			if(strs[0][i] == strs[n - 1][i])
				res += strs[0][i];
			else
				break;//不同就是找完前缀了
			
		}

		return res;
		

    }
};

 

标签:strs,string,首部,单词,common,prefix,longest,leetcode,ta
来源: https://blog.csdn.net/qq_40722582/article/details/100358901

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有