import java.util.ArrayList;
public class NewsClustering {
public int solution(String str1, String str2) {
ArrayList<String> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();
splitStr(str1, list1);
splitStr(str2, list2);
double intersection = intersectionList(list1, list2).size();
double union = list1.size() + list2.size() - intersection;
double answer = union == 0 ? 1 : intersection / union;
return (int) (answer * 65536);
}
public static void splitStr(String str, ArrayList<String> list) {
str = str.toUpperCase();
for (int i = 1; i < str.length(); i++) {
if ((str.charAt(i - 1) >= 'A' && str.charAt(i - 1) <= 'Z')
&& (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')) {
list.add(str.charAt(i - 1) + "" + str.charAt(i) + "");
}
}
}
public static ArrayList<String> intersectionList(ArrayList<String> list1, ArrayList<String> list2) {
ArrayList<String> result = new ArrayList<>();
ArrayList<String> l1 = new ArrayList<>(list1);
ArrayList<String> l2 = new ArrayList<>(list2);
for (String ele : l1) {
if (l2.contains(ele)) {
result.add(ele);
l2.remove(l2.indexOf(ele));
}
}
return result;
}
}