Первые слова Джейн
Джейн (моя дочь ~2 лет) начала разговаривать с простых слов. "Daddy" и "Mommy" - как обычно, два первых слова. Слышать эти слова впервые действительно прекрасно и запоминающееся.
В прошлом году Стив захотел записать то, что его ребенок скажет первый раз. Стив расположил микрофон и программу уловителя звука возле детской кроватки Джейн. Микрофон ловил звуки Джейн, а программа передавала список обнаруженных слов Стиву. Он написал программу, которая смогла обнаружить момент, когда Джейн впервые его позвала: "daddy" (или варианты этого слова). Вам следует написать такую программу.
Входные данные
В каждой строке задано одно слово. Это список пойманных звуков. Каждая строка состоит из букв нижнего регистра без пробелов и содержит до 20 букв.
Выходные данные
Для каждого слова/строки выведите "She called me!!!" в отдельной строке, если слово удовлетворяет регулярному выражению, приведенному ниже. Иначе выведите в отдельной строке "Cooing" (услышан мягкий шепот ребенка).
Замечание: кавычки приведены для ясности.
Регулярное выражение (regex): "da+dd?(i|y)".
Если Вы с ним не знакомы, то я объясню:
- '+' означает один или более предшествующий элемент
- '?' означает ноль или один предшествующий элемент.
- Вертикальная черта '|' разделяет альтернативы
- Скобки используются для определения сферы действия и приоритета операторов.
import java.util.Scanner;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Pattern p = Pattern.compile("da+dd?(i|y)");
while(in.hasNextLine()) {
System.out.println(p.matcher(in.nextLine()).matches() ? "She called me!!!" : "Cooing");
}
}
}
Немає коментарів:
Дописати коментар