import
java.util.Scanner;
public
class
StateMachine {
static
void
stateA(String n) {
if
(n.length() ==
0
) {
System.out.println(
"string not accepted"
);
}
else
{
if
(n.charAt(
0
) ==
'a'
) {
stateAB(n.substring(
1
));
}
else
if
(n.charAt(
0
) ==
'b'
) {
stateA(n.substring(
1
));
}
}
}
static
void
stateAB(String n) {
if
(n.length() ==
0
) {
System.out.println(
"string not accepted"
);
}
else
{
if
(n.charAt(
0
) ==
'a'
) {
stateABC(n.substring(
1
));
}
else
if
(n.charAt(
0
) ==
'b'
) {
stateAC(n.substring(
1
));
}
}
}
static
void
stateABC(String n) {
if
(n.length() ==
0
) {
System.out.println(
"string accepted"
);
}
else
{
if
(n.charAt(
0
) ==
'a'
) {
stateABC(n.substring(
1
));
}
else
if
(n.charAt(
0
) ==
'b'
) {
stateAC(n.substring(
1
));
}
}
}
static
void
stateAC(String n) {
if
(n.length() ==
0
) {
System.out.println(
"string accepted"
);
}
else
{
if
(n.charAt(
0
) ==
'a'
) {
stateAB(n.substring(
1
));
}
else
if
(n.charAt(
0
) ==
'b'
) {
stateA(n.substring(
1
));
}
}
}
public
static
void
main(String[] args) {
Scanner scanner =
new
Scanner(System.in);
System.out.print(
"Enter the string: "
);
if
(scanner.hasNext()) {
String n = scanner.next();
stateA(n);
}
else
{
System.out.println(
"No input provided."
);
}
scanner.close();
}
}