2019-03-5-算法-进化(最长公共前缀)

题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例 1:

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

示例 2:

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

说明:

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

我的初版解决思路为遍历数组,挨个字符进行比较,直到结束。代码如下:

//循环遍历,有两种退出条件: 1,数组最短元素  2,数组内String相同位置字符不同public String longestCommonPrefix(String[] strs) {if(strs == null || strs.length ==0) {return "";}StringBuilder sb = new StringBuilder();boolean toEnd = false;for(int i=0;;i++) {if(toEnd) {break;}for(String arr:strs) {if(i >= arr.length()) {//1,数组最短元素if(sb.length()>i) {sb.deleteCharAt(i);}toEnd =true;break;}if(sb.length()<=i) {sb.append(arr.charAt(i));}else if(sb.charAt(i) != arr.charAt(i)) {//2,数组内String相同位置字符不同sb.deleteCharAt(i);toEnd =true;break;}}}return sb.toString();}

采用水平扫描法进行优化
优化思路
举例:
例子
最终优化代码如下:

public String longestCommonPrefix(String[] strs) {if(strs == null || strs.length ==0) {return "";}String prefix = strs[0];for(int i=0;i<strs.length;i++) {while(strs[i].indexOf(prefix) != 0) {prefix = prefix.substring(0, prefix.length()-1);if(prefix.isEmpty()) {return "";}}}return prefix;}

代码简洁清晰了很多。
持续精进,加油!

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

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

相关文章

自然数幂之和

自然数幂之和 https://blog.csdn.net/suncongbo/article/details/97622131 这个文章的整理非常全面。

从你的全世界路过—一群程序员的稻城亚丁游记

转眼之间又即将到九月&#xff0c;又到了这个适合去川西旅游的最佳季节。最近有一些朋友问我稻城亚丁的旅游情况&#xff0c;因此我将去年写的这一篇游记再次发出来&#xff0c;希望对那些有计划去川西旅游的朋友们有帮助&#xff01;温馨提示&#xff1a;本文图片较多&#xf…

P2303 [SDOI2012] Longge(数论/欧拉函数)

P2303 [SDOI2012] Longge 一道看似非常基础的数论题&#xff0c;但是蕴含了非常多的知识&#xff0c;求解 ∑i1ngcd(i,n)\sum_{i1}^ngcd(i,n) i1∑n​gcd(i,n) 这个东西我们轻松地就能化简成id∗φid*\varphiid∗φ的形式&#xff0c;然后考虑如何快速求解&#xff0c;那么可以…

基于SQLite+EF6实现一套自己的Key-Value存储管理工具包(1)

在项目中&#xff0c;经常会需要对一些特定的业务对象进行属性的扩展&#xff0c;而且这些属性的扩展还具备极不可预测性、相互关系松散等特点。大部分的开发人员是最讨厌这类涉及到数据字段扩展的需求变更。这种调整&#xff0c;轻则数据要加字段&#xff0c;重则程序代码要做…

【C】Natasha V1.3.6.0 的升级日志

文章转载授权级别&#xff1a;C 预计阅读时间&#xff1a;8分钟开源库满足于个人&#xff0c;而完善于大众。Natasha 自稳定版发布之后&#xff0c;众多老铁参与增强改进&#xff0c;感谢如下老铁的反馈&#xff1a;1. 异常搜集在 wenjq0911 建议下&#xff0c;添加…

.NET 程序员如何学习Vue

之所以取这个标题&#xff0c;是因为本文来自内部培训的整理&#xff0c;培训的对象是公司的 .NET 程序员&#xff0c;.NET 程序员学习 Vue 是为了在项目中做二次开发时能够更好地跟产品对接。Vue 是现在比较流行的前端框架&#xff0c;也是非常容易入门的前端框架&#xff0c;…

.Net之微信小程序获取用户UnionID

前言&#xff1a;在实际项目开发中我们经常会遇到账号统一的问题&#xff0c;如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一&#xff08;便于用户信息的管理&#xff09;。这段时间就有一个这样的需求&#xff0c;之前有个客户做了一个微信小程序商城&…

自由源自于自律 及其他三则分享

Office 365 官方公众号的新创深度内容推荐竹板这么一打呀&#xff0c;别的咱不夸&#xff0c;单说我们的Office 365官方公众号&#xff08;“微软Office365”&#xff09;&#xff0c;近一段时间来在内容创作上面有一些新的突破——推出了一个关于探讨大脑及思维运作的专题。请…

2019-03-11-算法-进化(求众数)

题目描述 给定一个大小为 n 的数组&#xff0c;找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2思路&#xff1a…

淘宝商品数据库设计的一些经验

前言这几个月都在做一个通过淘宝API线下管理淘宝店的系统&#xff0c;学习了很多东西&#xff0c;这里想对淘宝商品表设计用自己的想法表现出来&#xff0c;如果你觉得很扯淡&#xff0c;可以写下自己的看法.OK&#xff0c;切入正题.淘宝的商品这块的复杂程度&#xff0c;是我见…

2019-03-11-算法-进化(搜索二维矩阵II)

题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列每列的元素从上到下升序排列 示例: 现有矩阵 matrix 如下&#xff1a; [[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9…

A and B and Lecture Rooms

A and B and Lecture Rooms 题意要求我们找有多少个点iii满足dis(i,x),dis(i,y)dis(i, x), dis(i, y)dis(i,x),dis(i,y)&#xff0c;输出点iii的数量即可。 首先特判无解的情况就是dis(x,y)dis(x, y)dis(x,y)为奇数时&#xff0c;接下来我们讨论有解的情况&#xff0c;大致分…

DevOps之持续集成SonarQube代码质量扫描

SonarQube是一个用于代码质量检测管理的开放平台&#xff0c;可以集成不同的检测工具&#xff0c;代码分析工具&#xff0c;以及持续集成工具。SonarQube 并不是简单地把不同的代码检查工具结果直接显示在 Web 页面上&#xff0c;而是通过不同的插件对这些结果进行再加工处理&a…

变量(网络流模型)

变量 首先最终答案的形式一定是每个变量前面对应一个系数&#xff0c;然后加上一些绝对值&#xff0c;由于每个变量只有两种取法&#xff0c;所以我们考虑使用最小割处理&#xff0c;对于每个变量建一个点分别连到S和T&#xff0c;然后表示选择取哪个&#xff0c;然后会有一边是…

使用VS Code 开发.NET CORE 程序指南

1. 前言近两年来&#xff0c;很多前端的同学都开始将 VSCode 作为前端主力开发工具&#xff0c;其丰富的扩展给程序开发尤其是前端开发带来了很多便利&#xff0c;但是作为微软主力语言的 .NET&#xff0c;却由于有宇宙第一IDE Visual Studio存在&#xff0c;很少有看到有后端同…

用pythonnet为计算机视觉做图像整理

中国的.NETer是国内技术的另类&#xff0c;当他们强调.NET也可以做啥啥时都会给别的技术藐视&#xff0c;毕竟主流都不用.NET。本人这几年其实花在.NET时间也少&#xff0c;都投入在Python/Go社区。可我还是有点工作外的寄托&#xff0c;就是让.NET也有一个很好的推广&#xff…

ABP虚拟文件系统(VirtualFileSystem)实例------定制菜单栏显示用户姓名

ABP默认的MVC启动模板在登录后, 右上角显示的是用户名:如果想让它显示用户的姓名该如何做呢?这就需要用到ABP一个非常强大的功能------虚拟文件系统.前期准备使用ABP CLI创建一个名为AbpStudy的ASP.NET MVC项目:abp new AbpStudy关于MVC的启动模板可以看文档, 这里就不赘述.虚…

.NET中国峰会 参与意愿调查

2014年微软组织成立.NET基金会&#xff0c;微软在成为主要的开源参与者的道路上又前进了一步。2014年以来已经有众多知名公司加入.NET基金会, 仅在平台项目中&#xff0c;.NET平台上有87&#xff05;贡献者其实不在Microsoft工作。将.NET基金会变成一个更加多样化和成员驱动的组…

听我的!美国科技公司这样做Code Review

Code Review&#xff0c;在当代的软件开发中占有重要的一环。虽然国内各大主流公司都已经参照国外同行设立了比较严格的Code Review机制&#xff0c;但是还是有好多大型软件公司以及中小型软件公司还未推行这一重要制度。那么在美国的科技企业中&#xff0c;Code Review推行的怎…

程序员过关斩将--互联网人必备知识cookie和session认证

菜菜&#xff0c;上次你说的cookie和session的文章&#xff0c;我觉得不太具体那你想怎么样具体呢&#xff1f;我自己从网上查了一下&#xff0c;很多关于cookie和session认证的&#xff0c;能不能给我讲讲用户认证呀&#xff0c;可以呀这样我下次再去面试&#xff0c;有可能会…