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

力扣题目学习笔记(OC + Swift) 14. 最长公共前缀

14. 最长公共前缀

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

方法一 竖向扫描法

个人感觉纵向扫描方式比较直观,符合人类理解方式,从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较,如果不相同则当前列不再属于公共前缀,当前列之前的部分为最长公共前缀。
竖向扫描原理

Swift

func longestCommonPrefix(_ strs: [String]) -> String {guard let firstStr = strs.first, !firstStr.isEmpty else { return "" }for i in 0..<firstStr.count {for j in 1..<strs.count {if strs[j].count == i || strs[j][strs[j].index(strs[j].startIndex, offsetBy: i)] != firstStr[firstStr.index(firstStr.startIndex, offsetBy: i)] {return String(firstStr.prefix(i))}}}return firstStr}

OC

-(NSString *)longestCommonPrefix:(NSArray <NSString *>*)strs {if (strs.count <= 0) {return @"";}NSString *firstStr = strs.firstObject;NSInteger len = firstStr.length;for (NSInteger i=0; i<len; i++) {for (NSInteger j=1; j<strs.count; j++) {if (strs[j].length == i || [strs[j] characterAtIndex:i] != [firstStr characterAtIndex:i]) {return [firstStr substringToIndex:i];}}}return firstStr;
}

方法二 有序首尾比较法

有序首尾比较法,先对数组进行排序,巧妙利用排序后的顺序及值之间的关系,只比较首尾两个字符串即可。

Swift

func longestCommonPrefix(_ strs: [String]) -> String {let strs = strs.sorted()let start = strs.first!let end = strs.last!var res = ""for i in 0..<start.count {let s = start[start.index(start.startIndex, offsetBy: i)]if s == end[end.index(end.startIndex, offsetBy: i)]{res.append(s)}else {break}}return res}

OC

//有序首尾比较法
-(NSString *)longestCommonPrefix:(NSArray *)strs {NSArray *sortedStrs = [strs sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, id  _Nonnull obj2) {return [obj1 compare:obj2 options:NSCaseInsensitiveSearch];}];NSString *res = @"";NSString *firstStr = sortedStrs.firstObject;NSString *lastStr = sortedStrs.lastObject;for (NSInteger i=0; i<firstStr.length; i++) {if ([firstStr characterAtIndex:i] == [lastStr characterAtIndex:i]) {unichar c = [firstStr characterAtIndex:i];res = [res stringByAppendingString:[NSString stringWithCharacters:&c length:1]];}else {break;}}return res;
}

相关文章:

力扣题目学习笔记(OC + Swift) 14. 最长公共前缀

14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 方法一 竖向扫描法 个人感觉纵向扫描方式比较直观&#xff0c;符合人类理解方式&#xff0c;从前往后遍历所有字符串的每一列&#xff0c;比较相同列上的…...

WinSW设置应用程序开机启动

前言 由于使用windows自动的自启方法&#xff0c;不管是将程序启动服务放到开机自启文件夹中&#xff0c;还是创建任务计划程序&#xff0c;都没有很好的实现程序的开机自启效果&#xff0c;而WinSW很好的解决了这个问题。 下载 WinSW下载地址 注意&#xff1a;不同版本&#…...

Leetcode—96.不同的二叉搜索树【中等】

2023每日刷题&#xff08;六十四&#xff09; Leetcode—96.不同的二叉搜索树 算法思想 实现代码 class Solution { public:int numTrees(int n) {vector<int> G(n 1, 0);G[0] 1;G[1] 1;for(int i 2; i < n; i) {for(int j 1; j < i; j) {G[i] G[j - 1] * …...

正则表达式零宽断言

正则表达式零宽断言 工具类&#xff0c;正则表达式匹配文本内容正则表达式语法例子例子01零宽断言?< 不包含左边值? 不包含右边值例子 常用正则表达式校验数字的表达式校验字符的表达式 工具类&#xff0c;正则表达式匹配文本内容 /*** 正则表达式工具类*/ public class…...

uni-app学习记录

uni-app注意点记录 跳转到 tabBar 页面只能使用 switchTab 跳转路由API的目标页面必须是在pages.json里注册的vue页面。如果想打开web url&#xff0c;在App平台可以使用 plus.runtime.openURL或web-view组件&#xff1b;H5平台使用 window.open&#xff1b;小程序平台使用web…...

API资源对象StorageClass;Ceph存储;搭建Ceph集群;k8s使用ceph

API资源对象StorageClass;Ceph存储;搭建Ceph集群;k8s使用ceph API资源对象StorageClass SC的主要作用在于&#xff0c;自动创建PV&#xff0c;从而实现PVC按需自动绑定PV。 下面我们通过创建一个基于NFS的SC来演示SC的作用。 要想使用NFS的SC&#xff0c;还需要安装一个NFS…...

Databend 开源周报第 124 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 新增对 Delta 和…...

Arduino开发实例-液体流量测量

液体流量测量 文章目录 液体流量测量1、流量传感器介绍2、硬件准备及接线3、代码实现在本文中,将介绍如何流量传感器进行测量液体流量。 流量传感器用于测量液体流速。 市场上有不同类型的流量传感器,在本文中,我们将使用霍尔效应流量传感器。 这些类型的流量传感器是非侵入…...

【idea】解决sprintboot项目创建遇到的问题

目录 一、报错Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found 二、报错java: 错误: 无效的源发行版&#xff1a;17 三、java: 无法访问org.springframework.web.bind.annotation.CrossOrigin 四、整合mybatis的时候&#xff0c;报java.lang.Ill…...

ADC芯片CS1237在电子秤方案的优势

​随着科技的不断发展&#xff0c;电子秤已经成为我们日常生活中不可或缺的测量工具。为了满足用户对于高精度、高稳定性的需求&#xff0c;芯海ADC芯片CS1237应运而生&#xff0c;为电子秤方案带来了革命性的变革。 一、芯海ADC芯片CS1237介绍 芯海ADC芯片CS1237是一款高性能…...

Leetcode的AC指南 —— 哈希表:202. 快乐数

摘要&#xff1a; Leetcode的AC指南 —— 哈希表&#xff1a;202. 快乐数。题目介绍&#xff1a;编写一个算法来判断一个数 n 是不是快乐数。 文章目录 一、题目二、解析1、哈希表 一、题目 题目介绍&#xff1a;编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为…...

机器学习 项目结构 数据预测 实验报告

需求&#xff1a; 我经过处理得到了测试值&#xff0c;然后进一步得到预测和真实值的比较&#xff0c;然后再把之前的所有相关的参数、评估指标、预测值、比较结果都存入excel,另外我还打算做测试报告模板&#xff0c;包括敏感性分析等。您建议我这些功能如何封装这些功能&…...

[Verilog] 设计方法和设计流程

主页&#xff1a; 元存储博客 文章目录 1. 设计方法2. 设计流程 3 Vivado软件设计流程总结 1. 设计方法 Verilog 的设计多采用自上而下的设计方法&#xff08;top-down&#xff09;。设计流程是指从一个项目开始从项目需求分析&#xff0c;架构设计&#xff0c;功能验证&#…...

C语言:指向数组的指针和指向数组元素的指针

相关阅读 C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm1001.2014.3001.5482 指向数组的指针和指向数组元素的指针常常被混淆&#xff0c;或者笼统地被称为数组指针&#xff0c;但它们之间是有差别的&#xff0c;本文就将对此进行讨论。 下面的代码…...

SQL基础:SQL 介绍和数据库基础

SQL简介 常用的Java等语言是和计算机交流的工具&#xff0c;告诉计算机&#xff0c;让计算机做一些事。 和其类似&#xff0c;SQL是 Structured Query Language 的缩写&#xff0c;即结构化的查询语言&#xff0c;是和数据库交互的工具&#xff0c;即通过既定的一些格式&…...

SpringSecurity入门

前言 Spring Security是一个用于在Java应用程序中提供身份验证和授权功能的强大框架。它构建在Spring框架之上&#xff0c;为开发人员提供了一套灵活且全面的安全性服务&#xff0c;本篇将为大家带来Spring Security的详细介绍及入门 一.安全框架 在学习了解Spring Security之…...

iOS 应用在前台时显示通知

背景&#xff1a; 在iOS应用中&#xff0c;当应用在前台运行时&#xff0c;是不会默认弹出通知的。这是iOS的设计决定&#xff0c;以避免用户在使用应用的过程中被打扰。然而&#xff0c;如果你希望在应用在前台的时候也能收到通知&#xff0c;你可以在你的应用代码中进行一些…...

Hamming space

汉明距离表示两个相同长度字符串对应位置的不同字符的数量。 对两个字符串异或运算&#xff0c;并统计1的个数并相减&#xff0c;这个数就是汉明距离。...

anaconda 安装 使用 pytorch onnx onnxruntime

一&#xff1a;安装 如果不是 x86_64&#xff0c;需要去镜像看对应的版本 安装 Anaconda 输入命令 bash Anaconda3-2021.11-Linux-x86_64.sh 然后输入 yes 表示同意 确认安装的路径&#xff0c;一般直接回车安装在默认的 /home/你的名字/anaconda3 很快就安装完毕。输入 yes…...

Web请求与响应

目录 Postman Postman简介 Postman的使用 请求 简单参数 实体参数 数组参数 集合参数 日期参数 Json参数 路径参数 响应 ResponseBody 统一响应结果 Postman Postman简介 postman是一款功能强大的网页调试与发送网页http请求的Chrome插件&#xff0c;常用于进行…...

ADS学习笔记(一)——更新中

在ADS中&#xff0c;信号上升时间为信号从0&#xff5e;100&#xff05;所用的时间&#xff0c;而实际上定义的上升边均为10&#xff05;&#xff5e;90&#xff05;&#xff0c;所以可以认为上升边&#xff1d;0.8*ADS设置上升时间。 一、终端开路及短路的反射信号 1.仿真条…...

智能优化算法应用:基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.冠状病毒群体免疫算法4.…...

小型气象站是什么?

随着科技的发展&#xff0c;我们的生活变得越来越便捷。如今&#xff0c;一款名为小型气象站的新兴设备正在逐渐走进我们的生活&#xff0c;为我们的日常生活增添了更多的便利和舒适。 WX-CQ12小型气象站是一种集成了多种传感器和数据采集技术的智能设备&#xff0c;可以实时监…...

官方指定Jmeter配置JVM堆内存方式

1.概述 在使用Jmeter做性能测试过程中&#xff0c;可能会应为默认设置的堆内存值较小出现堆内存溢出问题&#xff0c;此时解决的方式有两种&#xff0c;分布式测试和调大堆内存。下面介绍官方推荐调整堆内存方法。 2.调整Jmeter堆内存 2.1.介绍官方推荐堆内存调整方法(jmete…...

spark-常用算子

一&#xff0c;Transformation变换/转换算子&#xff1a; 这种变换并不触发提交作业&#xff0c;这种算子是延迟执行的&#xff0c;也就是说从一个RDD转换生成另一个RDD的转换操作不是马上执行&#xff0c;需要等到有Action操作的时候才会真正触发。 1.Value数据类型的Transf…...

《opencv实用探索·二十一》人脸识别

Haar级联分类器 在OpenCV中主要使用了两种特征&#xff08;即两种方法&#xff09;进行人脸检测&#xff0c;Haar特征和LBP特征。用的最多的是Haar特征人脸检测。 Haar级联分类器是一种用于目标检测的机器学习方法&#xff0c;它是一种基于机器学习的特征选择方法&#xff0c;…...

前端项目配置下载源npm, yarn,pnpm

前端项目配置下载源 npm: npm config set registry registryhttps://registry.npmmirror.com -g验证: npm config get registry yarn: yarn config set registry registryhttps://registry.npmmirror.com -gyarn config get registryyarn找不到, 需要管理员在命令行: set-exec…...

Elasticsearch之ik中文分词篇

Elasticsearch之ik中文分词篇 ik分词器插件ik分词器安装ik分词模式es ik分词测试 ik分词器插件 es在7.3版本已经支持中文分词&#xff0c;由于中文分词只能支持到单个字进行分词&#xff0c;不够灵活与适配我们平常使用习惯&#xff0c;所以有很多对应中文分词出现&#xff0c…...

2023_Spark_实验三十:测试Flume到Kafka

实验目的&#xff1a;测试Flume采集数据发送到Kafka 实验方法&#xff1a;通过centos7集群测试&#xff0c;将flume采集的数据放到kafka中 实验步骤&#xff1a; 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…...

urllib2 HTTP头部注入

文章目录 注入原理例题 [SWPU 2016]web7 注入原理 参考文章 应用场景是具有SSRF漏洞&#xff0c;结合CRLF注入 我们以redis数据库为例&#xff0c;当存在SSRF时我们伪造以下请求 http://127.0.0.1%0d%0aCONFIG%20SET%20dir%20%2ftmp%0d%0aCONFIG%20SET%20dbfilename%20evil%…...

乐清做网站/微信管理系统软件

“数据星河”系列活动—大数据人才培养现状和思考...

网站建设公司果动/优化大师会员兑换码

"Reactive Programming是神马&#xff1f;" 互联网上有很多不是很友好的解释。维基百科 宽泛而玄乎。 Stackoverflow教科书式的解释非常不适合信任Reactive Manifesto 听起来像是给给项目经理或者是销售的汇报。 微软的 Rx 定义 "Rx Observables LINQ Schedu…...

塘厦网站仿做/软文写作范文

PC&#xff1a;个人计算机Personal ComputerCPU&#xff1a;中央处理器Central Processing UnitCPU Fan&#xff1a;中央处理器的“散热器”(Fan)MB&#xff1a;主机板MotherBoardRAM&#xff1a;内存Random Access Memory&#xff0c;以PC-代号划分规格&#xff0c;如PC-133&a…...

phpcms做的网站/网络营销论文毕业论文

入口 A(fzu 1894) 普通的单调队列,trick是进队判断的符号选取(>wa , >ac). B(poj 2823) 没什么好说的 ,坑爹poj   g,tle ;c,ac. C(hdu 3415) 尝试封装了一下单调队列。。。感觉也没有方便多少. 1 #define maxn 1000102 #define INF 10000000003 int a[maxn<<1],…...

做彩票网站要什么接口/网络推广优化方案

一、函数的基本概念 1.1 函数在数学中的概念 函数指一个量随着另一个量的变化而变化。 函数的数学形式&#xff1a;yf(x) f是一种定义好的关系&#xff0c;可以简称为函数&#xff0c;在函数f中&#xff0c;只要x值的确定&#xff0c;那么y的值一定是确定的。y的值随x值的变化…...

wordpress 自动抓取/天津网站排名提升多少钱

我正在使用Webphere服务器。我正在使用Apache FileUpload方法通过servlet执行文件上传。上传文件时的Ajax请求需要很长时间才能完成我附加了一个侦听器到这个FileUpload&#xff0c;它更新了一个“百分比”字段&#xff0c;表示已经处理了多少百分比的请求。请求被定向到一个if…...