package com.interview.algorithms.string; import com.interview.utils.ConsoleReader; /** * Given a string array, find the max common part of all string elements. * E.g. the max common string of ["abcde", "abccd", "abc", abcef"] is "abc" * This checks basic programming using loop * * @author zouzhile (zouzhile@gmail.com) * */ public class C11_8_MaxCommonStringSearch { public String findMaxCommonString(String[] elements){ String lcs = elements[0]; for(int i = 1; i < elements.length; i++){ lcs = C11_12_LongestCommonSubstring.LCS(lcs, elements[i]); if(lcs == "") return ""; } return lcs; } public static void main(String[] args){ System.out.println("Search Max Common String"); System.out.println("==============================================================================="); ConsoleReader reader = new ConsoleReader(); String[] elements = reader.readStringItems(); C11_8_MaxCommonStringSearch searcher = new C11_8_MaxCommonStringSearch(); String maxCommonString = searcher.findMaxCommonString(elements); System.out.println("Max Common String is: " + maxCommonString); } }