Упражнения на Java: Проверьте, являются ли две указанные строки изоморфными или нет
Java Basic: упражнение 185 с решением
Напишите программу на Java, чтобы проверить, являются ли две данные строки изоморфными или нет.
Две строки называются изоморфными, если буквы в одной строке можно переназначить для получения второй строки. Переопределение буквы означает замену всех вхождений ее другой буквой, но порядок букв остается неизменным. Никакие две буквы не могут отображаться на одну и ту же букву, но буква может отображаться на себя.
Пример 1: слова «abca» и «zbxz» изоморфны, потому что мы можем отобразить «a» в «z», «b» в «b» и «c» в «x».
Пример 1: слова «bar» и «foo» не являются изоморфными, потому что мы можем отобразить «f» в «b», «o» в «a» и «o» в «r».
Пример решения:
Java-код:
import java.util.*;
public class Solution {
public static void main(String[] args) {
String str1 ="abca";
String str2 ="zbxz";
System.out.println("Is "+str1 +" and "+str2 +" are Isomorphic? "+is_Isomorphic(str1, str2));
}
public static boolean is_Isomorphic(String str1, String str2) {
if (str1 == null || str2 == null || str1.length() != str2.length())
return false;
Map<Character, Character> map = new HashMap<>();
for (int i = 0; i < str1.length(); i++) {
char char_str1 = str1.charAt(i), char_str2 = str2.charAt(i);
if (map.containsKey(char_str1))
{
if (map.get(char_str1) != char_str2)
return false;
}
else
{
if (map.containsValue(char_str2))
return false;
map.put(char_str1, char_str2);
}
}
return true;
}
}
Пример вывода:
Являются ли abca и zbxz изоморфными? правда
Блок - схема:
Редактор кода Java:
Компания: LinkedIn
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы найти длину самого длинного последовательного пути последовательности данного двоичного дерева.
Далее: Напишите программу на Java, чтобы проверить, является ли число стробограмматическим числом. Число представляется в виде строки.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования