• 最长公共前缀


    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

    思路:

    1. 先利用Arrays.sort(strs)为数组排序;
    2. 再将数组第一个元素和最后一个元素的字符从前往后对比。
    package algorithm;
    
    import java.util.Arrays;
    
    /**
     * 最长公共前缀
     * Leetcode: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
     * <p>
     * 示例 1:
     * <p>
     * 输入: ["flower","flow","flight"]
     * 输出: "fl"
     * Copy to clipboardErrorCopied
     * 示例 2:
     * <p>
     * 输入: ["dog","racecar","car"]
     * 输出: ""
     * 解释: 输入不存在公共前缀。
     */
    public class MaxCommonPrefix {
        public static void main(String[] args) {
            String[] strs = {"dog", "door", "didi"};
            String maxCommonPrefix = getMaxCommonPrefix(strs);
            System.out.println(maxCommonPrefix);
        }
    
        /**
         * 获取最长公共前缀
         *
         * @param strs
         */
        private static String getMaxCommonPrefix(String[] strs) {
            if (checkStrs(strs)) {
                int len = strs.length;
                StringBuilder strbuilder = new StringBuilder();
                Arrays.sort(strs);
                int m = strs[0].length();
                int n = strs[len - 1].length();
                for (int i = 0; i < len; i++) {
                    if (strs[0].charAt(i) == strs[len - 1].charAt(i)) {
                        strbuilder.append(strs[0].charAt(i));
                    } else {
                        break;
                    }
                }
                return strbuilder.toString();
            } else {
                return "";
            }
        }
    
        /**
         * 检查字符串数组是否合法
         *
         * @param strs 原始字符串
         * @return true 合法,false 不合法
         */
        private static boolean checkStrs(String[] strs) {
            boolean flag = false;
            if (strs != null) {
                for (int i = 0; i < strs.length; i++) {
                    if (strs[i] != null && strs[i].length() != 0) {
                        flag = true;
                    } else {
                        flag = false;
                    }
                }
            }
            return flag;
        }
    }
    
    
  • 相关阅读:
    Jquery实现无刷新DropDownList联动
    Mvc 提交表单的4种方法全程详解
    Sql Like 通配符 模糊查询技巧及特殊字符
    SQL 语句递归查询 With AS 查找所有子节点
    最常用的五类CSS选择器
    取出分组后每组的第一条记录(不用group by)按时间排序
    SpringCloud中接收application/json格式的post请求参数并转化为实体类
    SpringCloud负载均衡笔记
    iview-admin打包笔记
    SpringCloud之最大的坑
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/12785466.html
Copyright © 2020-2023  润新知