LeetCode27|最长公共前缀
时间:2022-07-23
本文章向大家介绍LeetCode27|最长公共前缀,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,问题简述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
2,示例
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
3,题解思路
对比
4,题解程序
import java.util.Arrays;
public class LongestCommonPrefixTest {
public static void main(String[] args) {
String[] strs = {"flower", "flow", "flight"};
String longestCommonPrefix = longestCommonPrefix(strs);
System.out.println("longestCommonPrefix = " + longestCommonPrefix);
}
public static String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
if (strs.length == 1) {
return strs[0];
}
Arrays.sort(strs);
char[] c1 = strs[0].toCharArray();
char[] c2 = strs[strs.length - 1].toCharArray();
int maxLength = Math.min(c1.length, c2.length);
StringBuilder stringBuilder = new StringBuilder(maxLength);
int i = 0;
while (i < maxLength) {
if (c1[i] == c2[i]) {
stringBuilder.append(c1[i]);
} else {
break;
}
i++;
}
return stringBuilder.toString();
}
}
5,总结,这道题想着是上周有时间总结输出来的,但是还是延迟了一个周,才将这道题总结输出出来,这道题就是一个对比的题,本质上利用了缓存这一原理,之前自己在写类似键值对集合时,也有了自己的一点思考,输出总结这道题时也是有了自己的一点思考,觉得这个缓存这个概念真的很宽泛,单体应用下的map,分布式缓存常用的就是redis这样的缓存组件了,缓存,字面理解就是暂时存储,起到了一个缓冲的作用,估计和缓冲区又不太一样,写过redis的内容,我都忘了自己用它来做什么的了,看下过往写过redis用法的文章springboot整合redis进行缓存的使用,java进阶|Springboot整合Redis+Aop+自定义注解实现数据埋点操作,后面这篇文章是我觉得写得比较满意的一篇文章,业务场景用到的,其实输出文章就是帮助自己记录,顺便帮助需要的人,这就是写文章记录的意义了
- Ryu和OpenStack集成
- react+redux+webpack教程2
- C/C++ Development using Visual Studio Code, CMake and LLDB
- TensorFlow-10-基于 LSTM 建立一个语言模型
- jquery及原生javascript对jsonp解决跨域问题实例详解
- css负边距之详解
- Python进阶教程(三)
- Python进阶教程(二)
- Python进阶教程(一)
- TensorFlow-11-策略网络
- 对比requirejs更好的理解seajs
- 深入浅出Logistic Regression之二分类
- 如何自动生成文本摘要
- Kaggle 神器 xgboost
- 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 数组属性和方法
- Kubeflow Pipeline 部署记录
- Kubeflow Pipeline - 上传一个 Pipeline
- Kubeflow Pipeline - 构建自定义的 Workflow
- R语言入门之变量重编码与重命名
- Kubeflow Pipeline - 构建一个机器学习 Workflow
- Git 如何压缩 commit
- How go build works
- 网状Meta分析之R语言‘gemtc’包实战(3)
- 关于 K8S API Resources: Group 和 Version 该怎么写
- ZooKeeper 的应用场景
- 在 K8S 部署一个 Spark History Server - 篇3
- Go 学习笔记-1
- Tensorflow-gpu 运行在 cpu 母机的问题
- R语言入门之散点图
- Python函数(一)