当前位置: 首页 > news >正文

[LeetCode] Longest Common Prefix 字符串公有前序

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. 返回长度。

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

 

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 using namespace std;
 5 
 6 class Solution {
 7 public:
 8     string longestCommonPrefix(vector<string> &strs) {
 9         int nvec = strs.size();
10         if(nvec<1) return "";
11         if(nvec<2) return strs[0];
12         int nmin = strs[0].length(),len=0;
13         bool flag = true;
14         for(int i =1;i<nvec;i++){
15             if(nmin>strs[i].length())   nmin = strs[i].length();
16         }
17         while(len<nmin){
18             for(int i=1;i<nvec&&flag;i++){
19                 if(strs[i][len]==strs[0][len])  continue;
20                 flag = false;
21             }
22             if(!flag)   break;
23             len++;
24         }
25         return strs[0].substr(0,len);
26     }
27 };
28 
29 int main()
30 {
31     vector<string> strs={"289","25324","22434","232","234"};
32     Solution sol;
33     cout<<sol.longestCommonPrefix(strs)<<endl;
34     return 0;
35 }
View Code

 

转载于:https://www.cnblogs.com/Azhu/p/4141494.html

相关文章:

  • aws云主机web弹性添加
  • 基础网络配置
  • 开始学习linux
  • JS魔法堂:函数节流(throttle)与函数去抖(debounce)
  • js判断浏览器是否安装了Flash插件及获取版本号
  • 如何读懂一片学术论文
  • POJ2104 (平方分割)二分查找理解。
  • 常用的SQL跟踪事件类
  • Ioc与DI
  • PHP开发工程师面试笔试
  • oracle jdk 1.6 download link
  • MySQL重命名数据表
  • oracle数据库的随堂笔记(四)-定义并使用变量
  • nginx和apache服务器下配置数据库信息
  • PostgreSQL的分区表建立
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • CEF与代理
  • CSS盒模型深入
  • ECMAScript6(0):ES6简明参考手册
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • IDEA常用插件整理
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript设计模式系列一:工厂模式
  • Java知识点总结(JavaIO-打印流)
  • JWT究竟是什么呢?
  • Promise面试题,控制异步流程
  • Python 反序列化安全问题(二)
  • Python连接Oracle
  • React-生命周期杂记
  • 阿里云Kubernetes容器服务上体验Knative
  • 复杂数据处理
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于遗传算法的优化问题求解
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端技术周刊 2019-02-11 Serverless
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 找一份好的前端工作,起点很重要
  • 浅谈sql中的in与not in,exists与not exists的区别
  • (第27天)Oracle 数据泵转换分区表
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (五)Python 垃圾回收机制
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • *** 2003
  • ./configure,make,make install的作用(转)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net 托管代码与非托管代码
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net开发时的诡异问题,button的onclick事件无效
  • @Validated和@Valid校验参数区别
  • [20150904]exp slow.txt
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [AIGC 大数据基础]hive浅谈
  • [C# 开发技巧]实现属于自己的截图工具