Topic Source: https: //leetcode-cn.com/problems/longest-common-prefix/
Write a function to find the longest common prefix string array.
If there is no common prefix, it returns an empty string "."
Example 1:
Input: [ "flower", "flow ", "flight"]
Output: "fl"
Example 2:
Input: [ "dog", "racecar ", "car"]
Output: ""
Explanation: there is no input common prefix.
Description:
All input contains only lowercase letters az.
answer:
package com.zx.leetcode.longestcommonprefix; /** * @Author JAY * @Date 2019/6/29 13:30 * @Description 最长公共前缀 **/ public class SolutionV2 { public static void main(String[] args) { // String[] str = {"dog","dracecar","dcar"}; // String[] str = {"flower","flow","flight"}; String[] str = {"flow","flow2","flow3","flight"}; // String[] str = {"1flow","2flow","flow"}; System.out.println(longestCommonPrefix(str)); staticPublic } String longestCommonPrefix(String[] strs) { if (strs.length == 0){ return ""; } String s = strs[0]; for (int i = 1; i < strs.length; i++) { while (strs[i].indexOf(s) != 0){ s = s.substring(0,s.length() - 1); if (s.isEmpty()){ return ""; } } } return s; } }
Answer two:
package com.zx.leetcode.longestcommonprefix; /** * @Author JAY * @Date 2019/6/29 13:30 * @Description 最长公共前缀 **/ public class Solution { public static void main(String[] args) { // String[] str = {"dog","dracecar","dcar"}; // String[] str = {"flower","flow","flight"}; // String[] str = {"flow","flow","flow"}; String[] str = {"1flow","2flow","flow"}; System.out.println(longestCommonPrefix(str)); } public static String longestCommonPrefix(String[] strs) { if(strs == null || strs.length == 0){ return ""; } boolean begin = true; StringBuilder sb = new StringBuilder(); int i = 0; int length = strs.length; String first = strs[0]; while (begin){ try { String substring = first.substring(i, i + 1); for (int index = 1; index < length; index++) { IF (! Substring.equals (STRs [index] .substring (I, I +. 1 ))) { the begin = to false ; BREAK ; } } IF (the begin) { SB = sb.append (the substring); } IF ( first.equals (sb.toString ())) { // described have all been matched to launch cycle the begin = to false ; } I ++ ; } the catch (Exception E) { begin = false; } } return sb.length() == 0 ? "" : sb.toString(); } }