最长公共前缀

2、最长公共前缀

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

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

示例1

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

示例2

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

说明:

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

Solution

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {string str="";int i=0;int over=0;if(strs.size()==0)return str;if(strs.size()==1)return strs[0];while(1){for(int j=1;j<strs.size();j++){if(i==strs[j].size()){over=1;break;}if(strs[j][i]==strs[0][i]){if(j==strs.size()-1){str+=strs[0][i];i++;}elsecontinue;}else{over=1;break;}}if(over)return str;}}
};

解题思路:

针对输入的字符串组存在的特殊情况进行特殊处理,如果没有字符串,则直接返回空,如果只有一个字符串,则直接将该字符串返回即可。

其余情况,设两个变量,分别代表横向和纵向,以第一个字符串做参考,检查其余字符串,有以下情况时可结束检查,并返回。1、横向变量的值超过某一字符串的最长长度;2、纵向比较时发现不相等的情况;如果字符比较相等,且到达最后一个字符串,则更新返回字符串,继续进行比较。

大神的做法;
vector用法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

devexpress中gridcontrol头部添加垂直线(右边框)

winform开发&#xff0c;用devexpress中的gridcontrol控件&#xff0c;头部默认是3D样式&#xff0c;当客户希望像内容一样扁平化显示且需要添加垂直线(右边框)时恶梦开始了。。经过一阵摸索发现可以这样解决&#xff1a; 1.设置GridControl的GridView控件的PaintStyleName属性…

UITableView知识梳理须知—(一)

1、UITableView掌握 1> 设置UITableView的dataSource、delegate 2> UITableView多组数据和单组数据的展示 3> UITableViewCell的常见属性 4> UITableView的性能优化&#xff08;cell的循环利用&#xff09; 5> 自定义Cell 2、什么是UITableView 在i…

Yarn中的几种状态机

1 概述 为了增大并发性&#xff0c;Yarn采用事件驱动的并发模型&#xff0c;将各种处理逻辑抽象成事件和调度器&#xff0c;将事件的处理过程用状态机表示。什么是状态机&#xff1f; 如果一个对象&#xff0c;其构成为若干个状态&#xff0c;以及触发这些状态发生相互转移的事…

反转字符串里的单词

4、反转字符串里的单词 给定一个字符串&#xff0c;逐个反转字符串中的单词 示例1&#xff1a; 输入: "the sky is blue", 输出: "blue is sky the".说明&#xff1a; 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格&#xff0…

正整数

题目链接&#xff1a;http://acm.hust.edu.cn/vjudge/contest/view.action?cid84077#problem/A 题目&#xff1a; Description A magic island Geraldion, where Gerald lives, has its own currency system. It uses banknotes of several values. But the problem is, the s…

360 webscan中防注入跨站攻击的核心

//get拦截规则 $getfilter "\\<.javascript:window\\[.{1}\\\\x|<.*(&#\\d?;?)?>|<.*(data|src)data:text\\/html.*>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\\(\d?|sleep\s*?\\([\d\.]?\\)|load_file\s*?\\()|<[…

POJ 2115 C Looooops(扩展欧几里得)

辗转相除法&#xff08;欧几里得算法&#xff09; 时间复杂度&#xff1a;在O(logmax(a, b))以内 int gcd(int a, int b) {if (b 0) return a;return gcd(b, a % b); }扩展欧几里得算法 时间复杂度和欧几里得算法相同 int extgcd(int a, int b, int& x, int& y) {int …

分支管理(转载)

转自&#xff1a;http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743862006503a1c5bf5a783434581661a3cc2084efa000 分支就是科幻电影里面的平行宇宙&#xff0c;当你正在电脑前努力学习Git的时候&#xff0c;另一个你正在另一个平行…

匹配括号

输入&#xff1a; 仅包含{,},(,),[,]的字符串输出&#xff1a; 如果括号匹配输出&#xff1a;YES 否则输出&#xff1a;NOSolution&#xff1a; #include<iostream> #include<string> #include<stack> using namespace std;bool check(const string&)…

总线接口与计算机通信

微机中总线一般有内部总线、系统总线和外部总线。 内部总线是微机内部各外围芯片与处理器之间的总线&#xff0c;用于芯片一级的互连&#xff1b; 系统总线是微机中各插件板与系统板之间的总线&#xff0c;用于插件板一级的互连&#xff1b; 外部总线则是微机和外部设备之间的总…

uva 12442 . Forwarding Emails

“... so forward this to ten other people, to prove that you believe the emperor has new clothes.”Aren’t those sorts of emails annoying?Martians get those sorts of emails too, but they have an innovative way of dealing with them.Instead of just forwardi…

大数相加

输入&#xff1a; 两个用字符串表示的大整数 如a1111111111111,b222222222222222 输出&#xff1a; 两个数的和 Solution&#xff1a; #include<iostream> #include<algorithm> #include<string>using namespace std;int add(const char&,const char&…

Linux的进程与服务(一)

启动的配置文件/etc/inittab&#xff0c;修改完配置文件以后 init q立即生效 # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not h…

Linux 修改swap虚拟内存大小

swap是内存的交换区&#xff1b;换句话说&#xff0c;如果内存不够用了&#xff0c;那么系统会在硬盘上存储一些内存中不常用的数据&#xff0c;之后将这部分数据在存储中析构掉&#xff1b;这样内存就又有剩余空间可以运行东东啦&#xff0c;这个过程也就是所谓的交换&#xf…

统计文章中的单词

输入&#xff1a; 字符串&#xff0c;其中可能包含空格&#xff0c;TAB&#xff0c;回车等&#xff0c;规定&#xff0c;仅字母数字和单引号算作单词部分 输出&#xff1a; 单词的个数 Solution&#xff1a; #include<iostream> #include<string>using namespac…

迈向世界 拓展未来

一切都会过去&#xff0c;只有真理永存&#xff0c;只有愿意越过事实前进一步的人&#xff0c;才能理解事实&#xff0c;这就是科学。时代在发展&#xff0c;科技更是日新月异彻底改变着我们的生活方式。现在的我们就是跟着科技发展的脚步&#xff0c;奔着梦想&#xff0c;一直…

JS - 跳转页面

<!-- 第一种&#xff1a; --><script type"text/javascript">window.location.href "login.jsp?backurl" window.location.href;</script><!-- 第二种&#xff1a; --><script type"text/javascript"&g…

分享一个用安卓手机就能引导pc安装linux系统办法

1、首先安卓手机下载软件DriveDroid.apk http://pan.baidu.com/s/1qW4pbT6 2、下载linux镜像文件放手机存储卡存储&#xff0c;放到Download/images/以下 3、打开软件会自己主动读取这个目录以下镜像&#xff0c;也能够在软件里面下载须要的镜像文件 4、软件设置usb连接模式 5、…

SharePoint 2013 开发——其他社交功能

博客地址&#xff1a;http://blog.csdn.net/FoxDave上一篇讲了如何获取用户配置文件的相关属性&#xff0c;它属于SharePoint 2013社交功能的一个小的构成部分。社交功能是SharePoint 2013改进的一大亮点。可以在现有网站上开启社交功能或者新建一个专门用于社交用途的社区网站…

第一个Qt+opencv程序

简单安装好Qt和编译安装好opencv后&#xff0c;简单实现第一个Qtopencv程序&#xff1a;读取并显示一张图片&#xff0c;这里我的Qt版本时5.9.1&#xff0c;opencv版本是4.0.1&#xff0c;版本的影响不大。 首先我们用Qt创建一个控制台项目&#xff0c;即在创建项目时选择Qt C…