Думайте об этом так. (Я не собираюсь писать код, потому что это то, что вам нужно учиться).
Вы хотите проверить, является ли определенная строка выражением префикса, поэтому у вас есть функция:
boolean isPrefix(string)
Теперь есть два способа, которыми эта строка может быть префиксом:
- Это персонаж из a-z
- Это в формате O (префикс) (префикс)
Итак, во-первых, вы проверяете, имеет ли строка длину один и находится ли он между a-z, и если да, то ответ - да.
Далее вы можете проверить, начинается ли строка с O. Если это так, вам нужно проверить оставшуюся часть строки, чтобы увидеть, состоит ли она из двух выражений префикса (FE).
Итак, вы начинаете итерацию от 1 до длины и передаете каждую подстроку (0-> i, i-> length) в isPrefix (). Если обе подстроки также являются допустимыми префиксными выражениями, ответ - да.
В противном случае ответ - нет.
Это в значительной степени так, но реализация, однако, зависит от вас.