首页 > 其他 > 详细

OJ练习7——T14 Longest Common Prefix

时间:2015-04-08 10:48:06      阅读:116      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!