14.最长公共前缀
时间:2021-09-04
本文章向大家介绍14.最长公共前缀,主要包括14.最长公共前缀使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
class Solution { public String longestCommonPrefix(String[] strs) { Tire tire=new Tire(); int size=strs.length; for(String str:strs){ tire.insert(str); } String flagStr=strs[0]; String result=""; String find=""; for(int j=0;j<flagStr.length();j++){ find+=flagStr.charAt(j); int pass=tire.getPreNumber(find); if(pass==size){ result+=flagStr.charAt(j); } } return result; } public class TireNode{ public int pass; public int end; public TireNode[] nexts=new TireNode[26]; } public class Tire{ private TireNode root; public Tire(){ root=new TireNode(); } public void insert(String word){ if(word==null){ return; } TireNode node=root; node.pass++; int index=0; char[] chs=word.toCharArray(); for(int i=0;i<chs.length;i++){ index=chs[i]-'a'; if(node.nexts[index]==null){ node.nexts[index]=new TireNode(); } node=node.nexts[index]; node.pass++; } node.end++; } public int getPreNumber(String word){ if(word==null){ return 0; } char[] chs=word.toCharArray(); int index=0; TireNode node=root; for(int i=0;i<chs.length;i++){ index=chs[i]-'a'; if(node.nexts[index]==null){ return 0; } node=node.nexts[index]; } return node.pass; } } }
原文地址:https://www.cnblogs.com/iwyc/p/15225757.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 醒醒神,爱奇艺笔试真题
- Qt音视频开发22-通用GPU显示
- 通吃岛屿问题
- 堂妹问我:Dubbo的服务暴露过程
- LeetCode 657. 机器人能否返回原点
- ! [rejected] master -> master (fetch first)
- Mybatis源码学习(二)Mapper动态代理
- Mybatis源码学习(三)executor
- Mybatis源码学习(四)拦截器与插件原理
- SpringBoot如何使用注解装配Bean
- Spring Boot 如何快速实现定时任务
- Django 实现文件上传下载API
- 【原创】Spring Boot 如何手写stater
- 【原创】Spring Boot 过滤器、监听器、拦截器的使用
- 关于useState的一切