LeetCode 14_Longest Common Prefix

最近这几道题比较简单,就多写一些吧,另外这两天心情很复杂,只有编程能给我带来片刻的宁静啊。。。

这次给大家说说leetcode第14题,可以说这是一道简单的不能再简单的题目了,这种题目就应该一次通过!当然我是没有,作为一名资深粗心程序员,我对自己的表现还是有充分估计的,所以并不能让我受到什么打击,怎么说呢,谁跟不要脸也没办法啊。

玩笑归玩笑,还是希望自己以后能更细心一点,不要犯不该犯的错误,也希望大家以我为反面教材,多多修炼自己处理的能力,比较编程不是游戏,你可是要拿这个吃饭的!

闲话少续,书归正传,上原题

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

从这个题目的样子就可以看出这是一道善良的小萌题,并不能激发大神的荷尔蒙,不过我们还是要从战术上重视敌人的。怎么说呢,就是要求一个最大公共前缀子串,其实这个东西简单就简单在这个“前”字上,不信你把“前”去了,去求最大公共子串,别多说,给你十个八个字符串就够你喝一壶的了。当然这些话是说给那些业余程序工作者说的,算法大神自然另当别论,也希望有大神看到这些话,把自己的方法给我们分享一下。

边界值!别忘了边界值!

上面这一行并不是打印错误,也不是作者突然疯掉了,只是给各位提个醒,当然更重要是给自己提个醒,不要忘了边界值,因为我这次确实也是忘了考虑边界值。

剩下的其实就没有太多可说的了,要有也是语言的一些问题了,比如说装string的vector该怎么访问啊之类的,这些是《C++ Primer》的工作,我就不多说。直接看代码吧

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
		if(strs.size()==0) return "";
		int len=strs[0].size();
		for(int i=1;i<strs.size();++i)
		{
			if(strs[i].size()<len)
				len=strs[i].size();
		}
		//if(len==0) return "";
		int j=0;
		for( ;j<len;++j)
		{
			int i=0;
			for( ;i<strs.size()-1;++i)
			{
				if(strs[i][j]!=strs[i+1][j])
					break;
			}
			if(i!=strs.size()-1)break;
		}
		return string(strs[0],0,j);
    }
};
代码就是通过很一般的比较方法来做的,先比较所以str的第一个字符,再比较第二个。。。。我想谁都是这么干的吧,大神的我没看,因为运行时间已经达到最低了(4ms),当然不要太过于相信自己了,我一会儿再去看下吧,如果有更好的方法我再来给大家补上,这道题就到这里吧。
再说点儿什么吗,,,,,,还是算了吧

祝每一个坚持的人实现自己的梦想



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值