Свернуть ↑
private static final char[][] CHARS = {
{'A', 'A'},
{'B', 'В'},
{'C', 'С'},
{'E', 'Е'},
{'H', 'Н'},
{'K', 'К'},
{'M', 'М'},
{'O', 'О'},
{'P', 'Р'},
{'T', 'Т'},
{'X', 'Х'},
{'a', 'а'},
{'c', 'с'},
{'e', 'е'},
{'o', 'о'},
{'p', 'р'},
{'x', 'х'},
};
public static void main(String[] args) {
String str = "tttaaa";
List<String> variantsList = new ArrayList<>();
char rr = replacementFor(str.charAt(0));
if (rr == '\0') {
variantsList.add(String.valueOf(str.charAt(0)));
} else {
//variantsList.add(String.valueOf(str.charAt(0)));
variantsList.add(String.valueOf(rr));
}
for (int i = 0; i < str.length(); i++) {
List<String> tempList = new ArrayList<>();
tempList.addAll(variantsList);
variantsList.clear();
char ch = str.charAt(i);
char r = replacementFor(ch);
if (r != '\0') {
for (String ss : tempList) {
variantsList.add(ss.substring(0, i) + ch);
variantsList.add(ss.substring(0, i) + r);
}
//variantsList.add(str.substring(0, i) + ch);
//variantsList.add(str.substring(0, i) + r);
} else {
for (String ss : tempList) {
variantsList.add(ss.substring(0, i) + ch);
}
//variantsList.add(str.substring(0, i) + ch);
}
}
for (String ss : variantsList) {
System.out.println(ss);
}
}
static char replacementFor(char ch) {
for (char cs[] : CHARS) {
if (cs[0] == ch) return cs[1];
else if (cs[1] == ch) return cs[0];
}
return '\0';
}Code: Java