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+自定义注解实现数据埋点操作,后面这篇文章是我觉得写得比较满意的一篇文章,业务场景用到的,其实输出文章就是帮助自己记录,顺便帮助需要的人,这就是写文章记录的意义了