boolean isSubstitutionCipher(String string1, String string2) {
int[] cor = new int[26];
for (int i = 0; i < 26; i++) cor[i] = -1;
Set<Integer> usedLetters = new HashSet<>();
for (int i = 0; i < string1.length(); i++) {
int p = string1.charAt(i) - 97;
if (cor[p] != -1 && cor[p] != string2.charAt(i) - 97) return false;
cor[p] = string2.charAt(i) - 97;
usedLetters.add(p);
}
for (int i = 0; i < 26; i++) cor[i] = -1;
usedLetters = new HashSet<>();
for (int i = 0; i < string2.length(); i++) {
int p = string2.charAt(i) - 97;
if (cor[p] != -1 && cor[p] != string1.charAt(i) - 97) return false;
cor[p] = string1.charAt(i) - 97;
usedLetters.add(p);
}
return true;
}