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

263企业邮箱登录官网seo服务公司排名

263企业邮箱登录官网,seo服务公司排名,大学网站建设排名,做徽章的企业网站文章目录 题目链接:题目描述:解法C 算法代码:解释 题目链接: 14. 最长公共前缀 题目描述: 解法 解法一:两两比较 先算前两个字符串的最长公共前缀,然后拿这个最长公共前缀和后面一个来比较&…

文章目录

    • 题目链接:
    • 题目描述:
    • 解法
    • C++ 算法代码:
    • 解释


题目链接:

14. 最长公共前缀


题目描述:

1437737d9724f4bdae721fb88bf0c78d


解法

解法一:两两比较

先算前两个字符串的最长公共前缀,然后拿这个最长公共前缀和后面一个来比较,得到最长公共前缀。直到比到最后一个字符串。

解法二:统一比较

先比较第一列,然后比较第2列,直到有字符串越界,或者有字符不一样,停止。


C++ 算法代码:

解法一(两两比较):

class Solution 
{
public:string longestCommonPrefix(vector<string>& strs) {// 解法一:两两比较法// 基本思路:先用第一个字符串作为基准,然后依次与后面的每个字符串比较// 每次比较后更新公共前缀,最终得到整个数组的最长公共前缀// 初始化返回结果为第一个字符串// 如果数组为空,此处可能会出错,但题目通常保证输入非空string ret = strs[0];// 从第二个字符串开始,依次与当前的公共前缀比较for(int i = 1; i < strs.size(); i++)// 调用辅助函数findCommon计算当前公共前缀与下一个字符串的公共前缀// 并更新公共前缀结果ret = findCommon(ret, strs[i]);// 返回最终的最长公共前缀return ret;}// 辅助函数:计算两个字符串的最长公共前缀string findCommon(string& s1, string& s2){// 用索引i遍历两个字符串int i = 0;// 条件一:确保不越界,只比较到较短字符串的长度// 条件二:当前位置字符必须相同才继续while(i < min(s1.size(), s2.size()) && s1[i] == s2[i]) i++; // 字符相同,继续比较下一个字符// 截取s1的前i个字符作为公共前缀返回// 此时i表示公共前缀的长度,可能为0(无公共前缀)// substr(pos,len)返回一个新的字符串,包含原字符串从pos位置开始的len个字符return s1.substr(0, i);}
};

解法二(统一比较):

class Solution 
{
public:string longestCommonPrefix(vector<string>& strs) {// 解法二:统一比较(逐列比较)// 基本思路:逐个字符位置比较所有字符串,只要发现不一致就立即返回结果// 从第一个字符串的第一个字符开始,逐位置向后比较// strs[0]:访问字符串数组的第一个元素(即第一个字符串)// strs[0].size():获取第一个字符串的长度// i < strs[0].size():判断索引i是否小于第一个字符串的长度for(int i = 0; i < strs[0].size(); i++){// 获取第一个字符串在当前位置的字符作为比较基准char tmp = strs[0][i];// 遍历剩余的所有字符串,检查它们在相同位置的字符是否与基准相同// strs:输入的字符串数组(vector<string>类型)// strs.size():获取字符串数组中的字符串数量// j < strs.size():判断索引j是否小于数组的大小for(int j = 1; j < strs.size(); j++)// 两种情况需要立即返回当前已找到的公共前缀:// 1. 当前字符串长度不够(i已经超出范围)// 2. 当前字符串在位置i的字符与基准不同// i == strs[j].size():检查当前检查的字符位置i是否等于当前字符串strs[j]的长度。就是"当前字符串是否已经到达末尾?"// tmp != strs[j][i]:检查基准字符tmp(即第一个字符串在位置i的字符)是否与当前字符串strs[j]在同一位置的字符不同。if(i == strs[j].size() || tmp != strs[j][i])// 返回第一个字符串的前i个字符作为最长公共前缀return strs[0].substr(0, i);}// 如果循环正常结束(没有提前返回),说明第一个字符串是所有字符串的前缀// 返回第一个字符串作为最长公共前缀return strs[0];}
};

解释

例如:["flower", "flow", "flight"]

执行过程:

  1. i=0: 比较所有字符串的第0个字符
    • strs[0][0] = 'f'
    • strs[1][0] = 'f'
    • strs[2][0] = 'f'
    • 全部匹配,继续
  2. i=1: 比较所有字符串的第1个字符
    • strs[0][1] = 'l'
    • strs[1][1] = 'l'
    • strs[2][1] = 'l'
    • 全部匹配,继续
  3. i=2: 比较所有字符串的第2个字符
    • strs[0][2] = 'o'
    • strs[1][2] = 'o'
    • strs[2][2] = 'i' ≠ 'o'
    • 发现不匹配,返回strs[0].substr(0, 2) = “fl”

文章转载自:

http://PEhKDU0U.dLjny.cn
http://shkf244G.dLjny.cn
http://AU8NJd8z.dLjny.cn
http://vnHIGSTU.dLjny.cn
http://miPBkRiO.dLjny.cn
http://y5P2bpCs.dLjny.cn
http://ESTy01Me.dLjny.cn
http://ryisi6c7.dLjny.cn
http://jV3Zo5x6.dLjny.cn
http://B2AODdmI.dLjny.cn
http://qmwaaNgw.dLjny.cn
http://kU4U073F.dLjny.cn
http://dl1c5gOy.dLjny.cn
http://efsgV7Xt.dLjny.cn
http://hgTgCZ1D.dLjny.cn
http://umyGviHg.dLjny.cn
http://Dr48ee3E.dLjny.cn
http://Fw4BZEu8.dLjny.cn
http://5zjBhlZQ.dLjny.cn
http://HbJDoIt9.dLjny.cn
http://c3UKL8ud.dLjny.cn
http://PzwPdJ1w.dLjny.cn
http://VcnOgXRJ.dLjny.cn
http://FCbWLJgS.dLjny.cn
http://khUIBmB2.dLjny.cn
http://Mxg9QrjM.dLjny.cn
http://NDZTtPQc.dLjny.cn
http://mBZFmcX3.dLjny.cn
http://V9lXcmT6.dLjny.cn
http://eBVRQM6u.dLjny.cn
http://www.dtcms.com/wzjs/612230.html

相关文章:

  • 江阴网站优化公司寿光网站建设
  • 建设网站最好的免费服务器有哪些
  • 网站建设服务收费标准学做网站多久
  • 十大卖衣服网站上海比较好的网站建设公司
  • 网站上的qq咨询怎么做wordpress不能登录
  • 重庆奉节网站建设宁波网站建设外包
  • 怎么在网站标头做图标广州建论坛网站
  • 此网站正在建设中页面网站建设培训教程 新手入门到精通
  • 网站建设玖金手指排名11网站字体加载不出来怎么办
  • p2p网站建设报价wordpress重置密碼
  • wordpress多站点 文章做网站开发学什么内容
  • 装修效果图网站推荐seo关键词优化服务
  • 广州公司网站提供ios开发软件
  • 系统 网站开发工程师做网站准备什么软件
  • 上海网站建设网页制作你却装饰装潢设计
  • 重庆网站建设建站收费微信公众平台开发者工具
  • 统计网站流量的网站网页游戏网站大全免费软件
  • 做网站找雷鸣企业推广方式推荐隐迅推
  • 建立网站一般多少钱比较好的网站开发公司
  • 公众号官方深圳网站搜索优化工具
  • 网站定位广告惠州市惠城区规划建设局网站
  • 重庆最好的网站建设wordpress 软件主题
  • 知名营销类网站识图
  • 用cdr做网站设计尺寸要多少昆明关键词优化
  • 网站中有一个非常著名的原则wordpress域名邮箱
  • 免费创建虚拟网站网站技术建设维护技术论文
  • 阿里云的网站程序如何做网站建设岗位周计划
  • 美的公司网站建设的目的wordpress广告图片代码
  • 网站的软件维护包括什么小型教育网站的开发与建设系统
  • flash网站开发工具小制作小发明手工五年级