import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<String, String> map = new LinkedHashMap<>();
StringBuilder build = new StringBuilder();
while(scanner.hasNextLine()){
String str = scanner.nextLine();
int length = str.length();
if(str.length() <= 3){
build.append(str).append(" ");
map.put(str,str);
}else{
String first = str.substring(0, 1);
String last = str.substring(length - 1, length);
String str2 = first+String.valueOf(length - 2)+last;
Collection<string> values = map.values();
ArrayList<string> arrayList = new ArrayList<>();
if(!map.containsKey(str2) && !(values.contains(str))){
map.put(str2, str);
build.append(str2).append(" ");
arrayList.add(str2);
}else {
String s = map.get(str2);
for(int i=1; i < length-2; i++){
String olsSub = s.substring(i, i + 1);
String newSub = str.substring(i, i + 1);
if(!olsSub.equals(newSub)){
String oldSubstring = s.substring(0, i + 1);
int minLength = oldSubstring.length();
String substring1 = s.substring(length - 1, length);
int sum = length - minLength - 1;
if(sum == 1){
String replace = build.toString().replace(str2, s);
build = new StringBuilder(replace).append(str+" ");
map.remove(str2);
map.put(s,s);
map.put(str,str);
break;
}else{
map.remove(str2);
map.put(oldSubstring+String.valueOf(sum) + substring1,s);
String newSubstring = str.substring(0, i + 1);
String substring2 = str.substring(length - 1, length);
map.put(newSubstring+String.valueOf(sum) + substring2,str);
String replace = build.toString().replace(str2, oldSubstring+String.valueOf(sum) + substring1);
build = new StringBuilder(replace).append(newSubstring+String.valueOf(sum) + substring2 + " ");
break;
}
}
}
}
}
}</string></string>

    String[] split = build.toString().split(" ");
    for(int i=0; i< split.length; i++){

        System.out.println(split[i]);
    }
}

}

图片说明

like
god
internal
me
internet
interval
intension
face
intrusion

l2e
god
internal
me
i6t
interval
inte4n
f2e
intr4n