• LeetCode14:最长公共前缀


    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 ""

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"
    

    示例 2:

    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。



    思路:先求出向量中最小的string长度,设为length,遍历vector,s[0][0] ----> s[s.size() -1 ][0],若相同,则将此字符添加至字符串r中,遍历s[0][1] -----> s[s.size()-1][1],同理,
    一直到s[0][length] ------> s[s.size() - 1] [ length] .
    #pragma once
    #include<vector>
    using namespace std;
    
    /*
    执行用时 : 20 ms, 在Longest Common Prefix的C++提交中击败了8.38% 的用户
    
    内存消耗 : 9.5 MB, 在Longest Common Prefix的C++提交中击败了0.90% 的用户
    
    */
    string longestCommonPrefix(vector<string>& s) {
    	string r = "";
    	if (s.empty())
    		return r;
    	if (s.size() == 1)
    		return s[0];
    
    	//求得vector中string最小长度
    	int length = s[1].size();
    	for (int i = 0; i < s.size(); i++)
    	{
    		int l = s[i].size();
    		if (l < length)
    			length = l;
    	}
    	//遍历向量vector,从s[i][0 -- length],最小长度
    	for (int i = 0; i < length; i++)
    	{
    		char t = s[0][i];
    		for (int j = 1; j < s.size(); j++)
    		{
    			if (t != s[j][i]) {
    				return r;
    			}
    		}
    		r.insert(r.end(), t);
    	}
    	return r;
    }
    

      

  • 相关阅读:
    linux两数相除计算百分数
    安装lombok
    STS(spring tool suite)修改默认编码
    eclipse项目中的java文件导入后变为空心J问题
    说Gradle
    window下安装git与git使用
    windows下安装git
    Javaweb 实现分页功能
    Xshell连接不上Ubuntu解决方式
    ubuntu下中文乱码解决
  • 原文地址:https://www.cnblogs.com/cyhezt/p/10513702.html
Copyright © 2020-2023  润新知