Проверьте, сформирована ли строка с использованием указанного набора правил или нет. Генерируется с помощью следующих правил:
a. строка начинается с ‘a’
b. за каждым » a «не следует ничего или» a » или » bb»
c. за каждым «bb» следует ничто или «a»
Я попробовал следующий код:
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
String str = scn.nextLine();
boolean b = false;
if (str.charAt(0) == 'a') {
if (str.charAt(1) == 'b') {
if (str.charAt(2) == 'b') {
b = true;
} else
b = false;
} else
b = false;
} else
b = false;
System.out.println(b);
}
это код все в порядке…???
Для input = aab выход должен быть ложным, а для input =abba выход должен быть истинным.
Если регулярные выражения разрешены, шаблон
(a+(bb)?)+
соответствует строкам, которые следуют правилу (и не соответствует строкам, которые не соответствуют).В противном случае ваш подход не может работать без какого-то цикла, потому что строка
aaaaaaaaaaa
соответствует шаблону.Рассмотрим следующий метод, который должен обрабатывать его.