Упражнения на Java: проверка строки по указанному шаблону
Java Basic: упражнение 199 с решением
Напишите программу на Java, чтобы проверить, соответствует ли строка заданному шаблону.
Пример шаблона:
Данный шаблон = "xyyx", str = "красный черный черный красный", верните true.
Данный шаблон = "xyyx", str = "красный черный черный зеленый", вернуть false.
Данный шаблон = "xxxx", str = "красный черный черный красный", вернуть false.
Данный шаблон = "xxxx", str = "красный красный красный красный", верните true.
Пример решения:
Java-код:
import java.util.*;
public class Solution {
public static void main(String[] args) {
String str ="red black black red";
//String str ="red red red red";
String pattern ="xyxx";
//String pattern ="xxxx";
System.out.print("Is the string and pattern matched? " + word_Pattern_Match(pattern, str));
}
public static boolean word_Pattern_Match(String pattern, String str) {
char[] word_pattern = pattern.toCharArray();
String[] words = str.split(" ");
Map < Character, String > map = new HashMap < > ();
Set < String > set = new HashSet < > ();
for (int i = 0; i < word_pattern.length; i++) {
if (map.containsKey(word_pattern[i])) {
if (!map.get(word_pattern[i]).equals(words[i])) {
return false;
}
continue;
}
if (set.contains(words[i])) {
return false;
}
map.put(word_pattern[i], words[i]);
set.add(words[i]);
}
return true;
}
}
Пример вывода:
Соответствует ли строка и шаблон? ложный
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Previous: написать программу на Java, чтобы получить позицию заданного простого числа.
Далее: Напишите Java-программу для удаления повторяющихся букв и упорядочения в лексикографическом порядке из заданной строки, которая содержит только строчные буквы.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования