static Map lcMergeStringsOccurringOnce(Map encodings) { new MultiSet ms; for (LS l : values(encodings)) ms.addAll(l); ret mapValues(encodings, l -> { l = cloneList(l); int i = 0; while (i < l(l)-1) { int j = i; while (j < l(l) && ms.get(l.get(j)) == 1) ++j; if (j > i+1) replaceSublist(l, i, j, ll(joinSubList(l, i, j))); i++; } ret l; }); }