1. 程式人生 > >leetcode Longest Common Prefix不同字串的公共字首

leetcode Longest Common Prefix不同字串的公共字首

思路:

當任意2個字串的最長公共字首,其長度肯定不會超過最短的字串的長度,設最短的字串長度為n,那麼只要比較這2個字串的前n個字元即可。

如此得出這2個字串的最長公共字首prefix後,再拿prefix作為新的字串和陣列中的下一個字串比較,方法同上。

需要注意的是,如果陣列中的某個字串長度為0,或者求得的當前最長公共字首的長度為0,就直接返回空字串。

class Solution {
public:
	int get1min(int x,int y){
	if(x>y)return y;
	return x;}
	
    string longestCommonPrefix(vector<string>& strs) {
		if(strs.empty())return "";
	string ss=strs[0];
	int i,j;
	for(i=1;i<strs.size();i++)
	{if(ss.size()==0||strs[i].size()==0)return "";
	int l=get1min(ss.size(),strs[i].size());//兩個字串比較
	 for(j=0;j<l;j++)
		 if(ss[j]!=strs[i][j])break;
	 ss=ss.substr(0,j);}
	return ss;}
};