StringUtils - nise-nabe/topcoder GitHub Wiki
static class StringUtils {
public static char[][] toCharArray(String[] strs) {
int n = strs.length;
char[][] cs = new char[n][];
for (int k = 0; k < n; ++k) {
cs[k] = strs[k].toCharArray();
}
return cs;
}
public static String reverse(String str) {
return new StringBuilder(str).reverse().toString();
}
public int lis(String input, BiFunction<Character, Character, Boolean> f) {
int n = input.length() + 1, lens[] = new int[n];
char[] cs = new char[n];
System.arraycopy(input.toCharArray(), 0, cs, 1, input.length());
for (int i = 1; i < n; ++i) {
for (int j = 0; j < i; ++j) {
if (f.apply(cs[j], cs[i])) {
lens[i] = Math.max(lens[i], 1 + lens[j]);
}
}
}
return java.util.Arrays.stream(lens).max().getAsInt();
}
}