給定一個String數組,找到最長的公共字元串
公共字元串,不會比最短的那個元素長;先令result = 第一個元素;後面慢慢判斷
1 package com.rust.TestString;
2
3 public class LongestCommonPrefix {
4 public static String longestCommonPrefix(String[] strs) {
5 if (strs.length == 0) {
6 return "";
7 }
8 String result = strs[0];
9 if (result.length() == 0 ) {
10 return "";
11 }
12 for (int i = 0; i < strs.length; i++) {
13 if (strs[i].length() == 0) {
14 return "";
15 }
16 int preLen = result.length() > strs[i].length() ?strs[i].length() : result.length() ;
17 int j;
18 for (j = 0; j < preLen; j++) {
19 if (result.charAt(j) != strs[i].charAt(j)) {
20 break;
21 }
22 }
23 result = result.substring(0, j);
24 }
25 return result;
26 }
27 public static void main(String args[]){
28 String[] input = {"abcdefghiaaaa","abcdefghiadfa","abcdefghifaf"};
29 String[] input1 = {""};
30 System.out.println(longestCommonPrefix(input));
31 System.out.println(longestCommonPrefix(input1));
32 }
33 }