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的情况。

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

  • 相关阅读:
    rip协议
    IP地址的计算以及子网掩码的计算
    jQuery知识点
    JavaScript 语言编程学习路线
    JS中AJAX知识
    .以及JDK1.5ConcurrentHashMap新特性
    Java程序执行顺序
    观察者设计模式
    Servlet中Filter的学习
    JDBC和连接池知识点
  • 原文地址:https://www.cnblogs.com/ketchups-notes/p/4401622.html
Copyright © 2011-2022 走看看