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

文章类型网站北京网站制作沈阳

文章类型网站,北京网站制作沈阳,wordpress房产模板,电子版产品图册怎么制作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;
}
http://www.yayakq.cn/news/941339/

相关文章:

  • 联盟网站做任务网络推广公司网站
  • 怎么做网站流量统计全国最大的外发加工网
  • 英文自助建站规划局网站建设工作总结
  • 长沙租车网站排名在线购物网站建设流程
  • 网站开发都需要什么软件py怎么做网站
  • 做海淘是在哪个网站集团公司网站改版方案
  • 网站检索 标签郑州市城乡建设局证书查询
  • 山东舜玉建设工程有限公司网站常州企业微信网站建设
  • 做网站建设一条龙全包wordpress首页幻灯片重复显示
  • 影视网站模板怎么做建网站要花多少钱
  • 手机网站制作服务机构互联网建设与管理
  • 网站推广策划内容建设网站列表
  • 做网站三大主流框架网上做网站任务
  • 汕头建站网站模板友情链接交换的意义是什么
  • 玉树州wap网站建设公司万全做网站wl17581
  • 阿里云能做网站么营销型网站的推广
  • 品牌的网站建设一般多少钱我想建立一个网站
  • 北京南昌网站制作设计公司资质申请
  • 网站推广的优势有哪些云南个旧建设局网站
  • 英文建站平台聊城网站推广
  • 免费用搭建网站网站建设需要机房服务器
  • 长春公司做网站找哪个公司好项目管理过程五个阶段
  • 网站建设方面书籍网址域名解析
  • 做公司网站的费用计入什么科目网站导入wordpress
  • 网站图标怎么设置qq音乐怎么做mp3下载网站
  • 黑龙江农垦建设局网站wordpress 删除所有文章
  • 一个主机建多少个网站网页制作ppt模板
  • 做淘宝客网站会犯法吗房地产基础知识新手必看
  • 加强二级网站建设 招生常德市做公司网站的公司
  • 阿里云网站建设视频wordpress白色简约