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

Hide Tags

String

 

    这是一道很简单的题目,判断输入的多个字符串的公有前序,简单的逻辑遍历查找就好。
算法流程:
  1. 判断输入的字符串数量,小于2时候做出相应返回。
  2. 获取最短字符串的长度。
  3. 设定标记flag,控制跳出循环,与长度返回的长度len。
  4. 在最短字符串长度的范围内循环。
  5. 循环中每次遍历全部字符串len 位的字符。
  6. 遇到不同设置flag 跳出循环,如果全部都相同len+1 进入下次循环。
  7. 返回长度。

其实可以简单点不求最短字符串长度,将这一步放入到判断是否相同时候。

 #include <iostream>
#include <vector>
#include <string>
using namespace std; class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
int nvec = strs.size();
if(nvec<) return "";
if(nvec<) return strs[];
int nmin = strs[].length(),len=;
bool flag = true;
for(int i =;i<nvec;i++){
if(nmin>strs[i].length()) nmin = strs[i].length();
}
while(len<nmin){
for(int i=;i<nvec&&flag;i++){
if(strs[i][len]==strs[][len]) continue;
flag = false;
}
if(!flag) break;
len++;
}
return strs[].substr(,len);
}
}; int main()
{
vector<string> strs={"","","","",""};
Solution sol;
cout<<sol.longestCommonPrefix(strs)<<endl;
return ;
}

[LeetCode] Longest Common Prefix 字符串公有前序的更多相关文章

  1. [LeetCode] Longest Common Prefix 最长共同前缀

    Write a function to find the longest common prefix string amongst an array of strings. 这道题让我们求一系列字符串 ...

  2. LeetCode: Longest Common Prefix 解题报告

    Longest Common Prefix Write a function to find the longest common prefix string amongst an array of ...

  3. LeetCode——Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. 写一个函数找出字符串数组中 ...

  4. Leetcode Longest Common Prefix

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

  5. Leetcode::Longest Common Prefix && Search for a Range

    一次总结两道题,两道题目都比较基础 Description:Write a function to find the longest common prefix string amongst an a ...

  6. [转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀

    题记: 这道题不难但是很有意思,有两种解题思路,可以说一种是横向扫描,一种是纵向扫描. 横向扫描:遍历所有字符串,每次跟当前得出的最长公共前缀串进行对比,不断修正,最后得出最长公共前缀串. 纵向扫描: ...

  7. leetcode Longest Common Prefix 多个字符串的最长字串

    public class Solution { public String get(String a,String b) { if(a==""||b=="") ...

  8. LeetCode Longest Common Prefix 最长公共前缀

    题意:给多个字符串,返回这些字符串的最长公共前缀. 思路:直接逐个统计同一个位置上的字符有多少种,如果只有1种,那么就是该位是相同的,进入下一位比较.否则终止比较,返回前缀.可能有一个字符串会比较短, ...

  9. leetcode Longest Common Prefix python

    class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str ...

随机推荐

  1. http 高级配置 虚拟主机,https 编译安装

    目录 http 高级配置 虚拟主机,https 编译安装 http 重定向 https HSTS HSTS preload list http 自带的工具程序 httpd的压力测试工具 实现状态页 反 ...

  2. tcl之string操作

  3. 18.VUE学习之-v-for操作对象与数值

    一组数组时的循环 二组数组时的循环 另外可以v for 20 可以直接操作数字 <!DOCTYPE html> <html lang="en"> <h ...

  4. ob缓存的基本使用

    在页面 加载的时候 如果 图片 很多 很大 会造成页面的阻塞降低用户体验 我们在点击页面的时候可以使用OB缓存 整个页面, 当用户点击的时候直接请求的是我们预先准备好的html页面 .也降低了我们数据 ...

  5. hadoop核心组件概述及hadoop集群的搭建

    什么是hadoop? Hadoop 是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分 ...

  6. Codeforces Round #461 (Div. 2) B. Magic Forest

    B. Magic Forest time limit per test 1 second memory limit per test 256 megabytes Problem Description ...

  7. 笔记-python-standard library-8.5.heapq

    笔记-python-standard library-8.5.heapq 1. heapq-heap queue algorithm源码:Lib/heapq.pythis module provide ...

  8. 使用charles进行https抓包

    一.charles电脑端设置 1.在Charles的菜单栏上选择"Proxy"->"Proxy Settings",填入代理端口8888(这个端口不一定填 ...

  9. dotfiles项目

    1.dotfile介绍 在linux中的各种软件配置文件大多是以.开头,以rc结尾,在第一次使用某一个软件比如vim的时候,通常会花大量时间配置,将所有的配置文件放到同一个目录下,方便在多台机器上同步 ...

  10. c++ 中double与string之间的转换,char *

    运行代码为 /* * main.cpp * * Created on: Apr 7, 2016 * Author: lizhen */ #include <iostream> //#inc ...