• 面试题:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。(c++实现)


    实例说明

    示例 1:

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

    示例 2:

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

    说明:

    所有输入只包含小写字母 a-z 。

    实现方法:

    #include<iostream>
    #include<vector>
    #include<string>
    using namespace std;
    string longestCommonPrefix(vector<string>& strs)
    {
    string re="";
    if(strs.empty())
                return re;
    if(strs.size()==1)
    {
        re+=strs.at(0);
        return re;
    }
    int jishu=0;
        int arrsize=strs.at(0).size();
        for(int p=1;p<strs.size();p++)
         {
         if(arrsize>strs.at(p).size())
             arrsize=strs.at(p).size();
         }
         for(int k=0,zm=0,jn=0;k<strs.size()-1;k++)
        {    
            
            while(zm<arrsize&&strs[k][zm]==strs[k+1][zm])
            {
                jn++;
                zm++;
                if(zm>=arrsize)
                    break;
            }
            if(k==0)
            jishu=jn;
            else if(jn<jishu)
                jishu=jn;
            zm=0;
            jn=0;
        }
         
        
        for(int ff=0;ff<jishu;ff++)
        re+=strs[0][ff];
        return re;   
    }
    
    
    int main()
    {
    //vector<string> str;
    //vector<string>::iterator it; 
    string a[3]={"flower","flow","flight"};
    //string a[3]={"dog","racecar","car"};
    //string a="a";
    vector<string> str;
    //str.push_back(a);
    //cout<<str.at(0)<<endl;
    
    for(int nn=0;nn<3;nn++)
    {
    str.push_back(a[nn]);
    //cout<<str.at(nn)<<endl;
    }
    /*
    string putstr;
                    //用户自定义收到输入vector容器中的string类对象。
    while(cin>>putstr)
    {
    str.push_back(putstr);
    }
    */
    string bbbb=longestCommonPrefix(str);
    cout<<bbbb<<endl;
    return 0;
    }
  • 相关阅读:
    js中的数组
    range关键字,map,sync.Map,list
    数组,切片
    类型转换,指针,变量的生命周期,常量,模拟枚举,类型别名和类型定义
    字符串类型及其常用操作
    整数类型,浮点类型,复数,bool类型
    声明,初始化,匿名变量,作用域
    C#并发编程——异步编程基础
    继承、多态、接口
    C#基础
  • 原文地址:https://www.cnblogs.com/mydomain/p/9940963.html
Copyright © 2020-2023  润新知