/**
 * 获取两个字符串的最长重复子串
 * @param srcStr1
 * @param srcStr2
 * @return
 */
public static String getMaxLenRepeatedSubStr(String srcStr1,String srcStr2){
    if (srcStr1==null){
        return null;
    }
    if (srcStr1.isEmpty()){
        return null;
    }
    if (srcStr2==null){
        return null;
    }
    if (srcStr2.isEmpty()){
        return null;
    }
    Random random = new Random();
    HashSet<String> stringHashSet = new HashSet<>();
    int count=0;
    while (true){
        int srcStr1SubStrBegIndex= random.nextInt(srcStr1.length());
        int srcStr1SubStrEndIndex= random.nextInt(srcStr1.length());
        int srcStr1SubStrEndIndex1=srcStr1SubStrEndIndex+1;
        if (srcStr1SubStrBegIndex<srcStr1SubStrEndIndex1){
            String substring = srcStr1.substring(srcStr1SubStrBegIndex, srcStr1SubStrEndIndex1);
            stringHashSet.add(substring);
        }
        if (count>1000000){
            break;
        }
        count++;
    }
    HashSet<String> stringHashSet1 = new HashSet<>();
    int count1=0;
    while (true){
        int srcStr2SubStrBegIndex= random.nextInt(srcStr2.length());
        int srcStr2SubStrEndIndex= random.nextInt(srcStr2.length());
        int srcStr2SubStrEndIndex1=srcStr2SubStrEndIndex+1;
        if (srcStr2SubStrBegIndex<srcStr2SubStrEndIndex1){
            String substring = srcStr2.substring(srcStr2SubStrBegIndex, srcStr2SubStrEndIndex1);
            stringHashSet1.add(substring);
        }
        if (count1>1000000){
            break;
        }
        count1++;
    }
    ArrayList<String> stringArrayList = new ArrayList<>();
    stringArrayList.addAll(stringHashSet);
    stringArrayList.addAll(stringHashSet1);
    HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
    stringArrayList.forEach(e->{
        if (stringIntegerHashMap.containsKey(e)){
            stringIntegerHashMap.put(e,stringIntegerHashMap.get(e)+1);
        }else {
            stringIntegerHashMap.put(e,1);
        }
    });
    ArrayList<CustStrCompute3> stringArrayList1 = new ArrayList<>();
    stringIntegerHashMap.forEach((key,val)->{
        if (val==2){
            CustStrCompute3 custStrCompute3 = new CustStrCompute3();
            custStrCompute3.setRepeatedStr(true);
            custStrCompute3.setId(UUID.randomUUID().toString());
            custStrCompute3.setRepeatedSubStr(key);
            custStrCompute3.setRepeatedStrLen(key.length());
            stringArrayList1.add(custStrCompute3);
        }
    });
    Collections.sort(stringArrayList1, new Comparator<CustStrCompute3>() {
        @Override
        public int compare(CustStrCompute3 o1, CustStrCompute3 o2) {
            return o1.getRepeatedStrLen()-o2.getRepeatedStrLen();
        }
    });
    return stringArrayList1.get(stringArrayList1.size()-1).getRepeatedSubStr();
}