记录一下,从今天开始,刷LeetCode的题,期待早日刷完!java
查找字符串数组中的最长公共前缀。若是不存在公共前缀,返回空字符串 ""
。git
示例 1:github
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:数组
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:code
全部输入只包含小写字母 a-z
。ip
/** * @Author : Yanqiang * @Date : 2019/5/17 * @Param : [strs] * @return : java.lang.String * @Description : * 讲解: 先把[第一个]从后往前截取,边截取边与[第二个]比较,直到有相同的前缀,存放到prefix, * 再拿prefix与后面的几个字符串边截取边,存放到prefix, * 最后剩下的,确定是全部字符串共同的前缀,没有共同前缀的话就回到空字符串了 */ public static String getCommonPrefix(String[] str) { int count = str.length; String prefix = ""; if(count != 0){ prefix = str[0]; } for(int i=0; i<count; i++){ //关键代码,不断的从后往前截取字符串,而后与之相比,直到startsWith()返回true while(!str[i].startsWith(prefix)){ int length = prefix.length(); prefix = prefix.substring(0, length-1 ); } } return prefix; }
LeetCode 所有题目讲解与答案,可移步 GitHub:https://github.com/yan-qiang/LeetCode字符串