算法:最长公共前缀字符串14. Longest Common Prefix

算法:最长公共前缀字符串14. Longest Common Prefix

LeetCode全集请参考:

题目


Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string “”.

Example 1:

Input: strs = ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Constraints:

0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] consists of only lower-case English letters.

LCP水平扫描获取相邻最大共同前缀

LCP数组(Longest Common Prefix Array):是由后缀数组中相邻两个后缀的最长公共前缀的长度组成的数组。

首先,我们将描述一种简单的方法来查找一组字符串共享的最长前缀.LCP(S1…Sn).
我们得出如下规律
LCP(S1…Sn)=LCP(LCP(LCP(S1,S2),S3),…Sn)

www.zeeklog.com  - 算法:最长公共前缀字符串14. Longest Common Prefix
class Solution {
    public String longestCommonPrefix(String[] strs) {
        // check edge
        if (strs == null || strs.length == 0) {
            return "";
        }
        
        if (strs.length == 1) {
            return strs[0];
        }
        
        String preS = strs[0];
        for(int i = 1; i < strs.length; i++) {
            while(strs[i].indexOf(preS) != 0) {
                preS = preS.substring(0, preS.length() - 1);
                if (preS.isEmpty()) {
                    return "";
                }
            }
        }
        
        return preS;
    }
}

Read more

Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据

Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据

--------------查"当天"的数据-----------------   SELECT   ew.orderid,   ew.carid,   ew.userid,   ew.`status`,   ew.reservetime,   ew.starttime,   ew.endtime,   ew.canceltime,   eu.nickname,           ec.plateid   FROM   evlib_workorder ew   LEFT JOIN evlib_user eu ON eu.userid = ew.userid   LEFT JOIN evlib_car ec ON ec.carid = ew.carid

By Ne0inhk
App后台开发运维和架构实践学习总结(10)——基于Java-JWT前后端token认证实战使用详解

App后台开发运维和架构实践学习总结(10)——基于Java-JWT前后端token认证实战使用详解

一、什么是JWT?了解JWT,认知JWT 首先jwt其实是三个英语单词JSON Web Token的缩写。通过全名你可能就有一个基本的认知了。token一般都是用来认证的,比如我们系统中常用的用户登录token可以用来认证该用户是否登录。jwt也是经常作为一种安全的token使用。 JWT的定义:JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。 JWT特点:简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快。自包含(Self-contained):负载中包含了所有用户所需要的信息,避免了多次查询数据库 二、JWT构成或者说JWT是什么样的? 2.1.JWT结构 JWT主要包含三个部分之间用英语句号'.'隔开 Header 头部 Payload 负载 Signature 签名

By Ne0inhk
App后台开发运维和架构实践学习总结(11)——Cookie、Session、Token那点事儿

App后台开发运维和架构实践学习总结(11)——Cookie、Session、Token那点事儿

1什么是Cookie? Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。随着互联网时代的策马奔腾,带宽等限制不存在了,人们需要更复杂的互联网交互活动,就必须同服务器保持活动状态(简称:保活)。 于是,在浏览器发展初期,为了适应用户的需求技术上推出了各种保持 Web 浏览状态的手段,其中就包括了 Cookie 技术。Cookie 在计算机中是个存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM 中发挥作用 (此种 Cookies 称作 Session Cookies),一旦用户从该网站或服务器退出,Cookie 可存储在用户本地的硬盘上 (此种 Cookies 称作 Persistent Cookies)。 Cookie 起源:1993 年,网景公司雇员 Lou Montulli 为了让用户在访问某网站时,进一步提高访问速度,同时也为了进一步实现个人化网络,发明了今天广泛使用的 Cookie。

By Ne0inhk
Spring MVC学习总结(19)——SpringMVC权限注解拦截

Spring MVC学习总结(19)——SpringMVC权限注解拦截

HandlerInterceptor(处理器拦截器) 常见使用场景 日志记录: 记录请求信息的日志, 以便进行信息监控, 信息统计, 计算PV(page View)等 性能监控: 权限检查: 通用行为: 使用自定义注解实现权限拦截 首先HandlerInterceptor了解 在HandlerInterceptor中有三个方法: public interface HandlerInterceptor {    // 在执行目标方法之前执行    boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler)throws Exception;    // 执行目标方法之后执行    void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception;    // 在

By Ne0inhk