码迷,mamicode.com
首页 > 编程语言 > 详细

Java笔试题(4)

时间:2018-09-22 01:07:11      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:bst   hash   substr   return   result   new   maxlength   最大   str   

/**
 * 输入整数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笔试题(4)

标签:bst   hash   substr   return   result   new   maxlength   最大   str   

原文地址:https://www.cnblogs.com/myibu/p/9688742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!