неділя, 1 листопада 2015 р.

6958

Первые слова Джейн

Джейн (моя дочь ~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"); } } }

Немає коментарів:

Дописати коментар