当前位置: 首页 > 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/766990/

相关文章:

  • 一般用什么做网站首页做公益网站有什么要求
  • 网站升级什么意思洞头网站建设
  • 品牌网站建设新闻大连网站开发公司排名
  • 通州的网站建设改版网站收费
  • 黄石网站建设定制网络接口报警灯生产厂商
  • 网站做非经营性广告需备案iapp用网站做的APP无法加载
  • 做网站开发所需的知识技能郴州网站建设较好的公司
  • 站长工具 站长之家WordPress快捷登录如何关闭
  • iis搭建网站教程网站建设成都公司
  • 中文网站欣赏镇江百度网站排名
  • 苏州网站推广如何WordPress寻主题
  • 潍坊汇聚网站wordpress 无法访问
  • 苏州网站建设制作开发公司开发区高级中学
  • 花生壳如何建设网站德州企业网站建设
  • 配音阁在线制作网站赣州企业网站建设公司
  • 潮州木雕世家木雕网站建设案例分享分类信息网站 建议 建设
  • 企业网站建设流程步骤国内新闻最新消息摘抄
  • 上海建设银行网站网页做网站注册商标
  • 个人网站备案说明如何把网站上传到空间
  • 佛山做企业网站的公司制作个人网站的要求
  • 大型网站制作需要多少钱泉州有那些网站建设公司
  • 网站建设中界面模板下载建一个平台网站一般需要多少钱
  • 做u盘的老外网站广州达美网站建设
  • 南阳网站排名优化费用百度网站排名查询工具
  • 上海市工程咨询协会seo应用领域
  • 南通网站定制费用株洲24小时新闻
  • 青岛网站建设seo优化南通做网站的花云
  • 网站企业有哪些wordpress文章怎么生成海报
  • 长沙网站制造wordpress 公众号
  • 通江县建设局网站外贸网站怎么做才好