zoukankan      html  css  js  c++  java
  • OJ练习7——T14 Longest Common Prefix

    得到一个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的情况。

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

  • 相关阅读:
    poj2186强连通分量
    poj1459SAP最大流模板题
    poj2391Floyd+二分+最大流
    curl上传下载入门
    Mysql存储过程
    小球旋转
    钟表单摆
    java小记 摘抄
    servlet的一些收集总结
    Javascript基础小结
  • 原文地址:https://www.cnblogs.com/ketchups-notes/p/4401622.html
Copyright © 2011-2022 走看看