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

OJ练习7——T14 Longest Common Prefix

时间:2015-04-08 10:50:46      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:

得到一个string序列的最长公共前缀。

【思路】

先求得最小string的长度,使得比较次数尽可能少。

对于要返回的prefix的每一位,从第一个string中取一个字符,拿来和其他string同样位置的字符比较;

如果不相同,则返回当前的prefix,否则添加到prefix后。

【注意】

读取第i个string的第j个字符:vec[i][j],或者*(vex[i].begin()+j)。明显前者更方便。

【my code】

class Solution {
public:
    string longestCommonPrefix(vector<string> &strs) {
    string res="";
    if(strs.empty())
            return res;
	int i, j, min=2147483647;
	char c;
	for(i=0; i<strs.size(); i++)
		min=min>strs[i].size()?strs[i].size():min;
	for(i=0; i<min; i++)
	{
		c=strs[0][i];
		//cout<<c;
		for(j=1; j<strs.size(); j++)
		{
			if(c!=strs[j][i])
				return res;
		}
		res.push_back(c);
	}
	return res;
    }
};

【总结】

刚开始没有strs是空串的情况处理,平台显示“runtime error”,last exacuted input:[]

可见刚开始即测试strs是empty的情况。

积累经验,学会保持代码完备性。

OJ练习7——T14 Longest Common Prefix

标签:

原文地址:http://www.cnblogs.com/ketchups-notes/p/4401622.html

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