From 0ad4284cbd0521138f22934cb6e5392dff04495e Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 29 Oct 2025 21:13:27 -0700 Subject: [PATCH] Add an implementation of finding the longest common prefix of an array of strings. Print out empty string if there is no common prefix. I aim this to be counted towards the Hacktoberfest. --- Java/LargestCommonPrefix.java | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Java/LargestCommonPrefix.java diff --git a/Java/LargestCommonPrefix.java b/Java/LargestCommonPrefix.java new file mode 100644 index 0000000..6867a1d --- /dev/null +++ b/Java/LargestCommonPrefix.java @@ -0,0 +1,41 @@ +/* Author : Shuyin Liu + * Problem : To find the longest common prefix string amongst an array of strings, input on command line. + * Explanation : Sample command -- java LongestCommonPrefix apple application appointment + */ +class LongestCommonPrefix { + public static void main(String[] args) { + System.out.print("The common prefix is:"); + if (args.length == 0) { + System.out.println(""); + return; + } + if (args.length == 1) { + System.out.println(args[0]); + return; + } + + String prev = args[0]; + + for (int i = 1; i < args.length; i++) { + prev = getCommonPrefix(prev, args[i]); + if (prev.isEmpty()) { + System.out.println(""); + return; + } + } + + System.out.println(prev); + } + + private static String getCommonPrefix(String a, String b) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < a.length() && i < b.length(); i++) { + if (a.charAt(i) == b.charAt(i)) { + sb.append(a.charAt(i)); + } else { + break; + } + } + return sb.toString(); + } +} \ No newline at end of file