Предположим, у вас есть строка, состоящая только из 'a' и 'b'. Напишите рекурсивную функцию, которая проверяет, была ли строка сгенерирована с использованием следующих правил: 1. Строка начинается с «a» 2. За каждым «a» ничего не следует, ни «a», ни «bb» 3. Каждый «bb» "не содержит ничего или 'a' Если за всеми правилами следует заданная строка, верните true, в противном случае верните false.
public class temp {
public static boolean checkAB(String input) {
if (input.length() == 1) {
if (input.charAt(0) == 'a')
return true;
else
return false;
}
Boolean ans = checkAB(input.substring(0, input.length() - 1));
if (ans == false)
return ans;
else {
if (input.charAt(input.length() - 2) == 'a') {
if (input.charAt(input.length() - 1) == 'a' || input.charAt(input.length() - 1) == 'b')
return true;
else
return false;
}
if (input.charAt(input.length() - 2) == 'b') {
if (input.charAt(input.length() - 3) == 'a') {
if (input.charAt(input.length() - 1) == 'b') {
return true;
} else
return false;
}
if (input.charAt(input.length() - 3) == 'b') {
if (input.charAt(input.length() - 1) == 'a') {
return true;
} else
return false;
}
} else
return false;
}
return false;
}
public static void main(String args[]){
System.out.println(checkAB("abbbabaaa"));
}
}