Java笔试题
Posted myibu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java笔试题相关的知识,希望对你有一定的参考价值。
/** * 输入整数n * 输入整数个字符串 * 求每个字符串的的最长公共子字符串(从下标0开始)且不是其它字符串的前缀 * * 例: * 输入: * 5 * bcd * abcd * abce * hgfs * hgab * * 输出: * b * abc * abc * hg * hg */ import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 输入 int num = sc.nextInt(); String[] strs = new String[num]; for (int i = 0; i < num; i++) { strs[i] = sc.next(); } String[] results = new String[num]; Map<Integer, String> map = new HashMap<Integer, String>(); for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if(j != i) { String sub = getMaxLength(strs[i], strs[j]); System.err.println(strs[i] + "/" + strs[j] + ":" + sub); if (!map.containsKey(i)) { map.put(i, sub); } else { if (map.get(i).length() < sub.length()) { map.put(i, sub); } } } } } for (int i = 0; i < num; i++) { System.out.println(map.get(i)); } } // 求最大公共子字符串 static String getMaxLength(String str1, String str2){ int len = (str1.length()<str2.length()) ? str1.length() : str2.length(); int end = 1; for (int i = 0; i < len; i++) { if(str1.charAt(i) == str2.charAt(i)){ i++; while(i<len && str1.charAt(i) == str2.charAt(i)){ i++; } end = i; break; } } return str1.substring(0,end); } }
以上是关于Java笔试题的主要内容,如果未能解决你的问题,请参考以下文章