Может ли кто-нибудь предложить лучший оптимизированный способ решить эту загадку для кодирования? Я использовал кучу утверждений if, и мне сказали, что просто увеличена циклическая сложность. Является ли решение регулярным выражением или структурой данных (например, стеком)? Любая обратная связь очень ценится.Valid Parens method - Java
/**
* Write a function that will take a string as input and output
* a boolean (true or false) that describes if the string has valid parens.
*
* Use Cases:
*
* "" -> false
*
* null -> false
*
* "()" -> true
*
* ")" -> false
*
* "(" -> false
*
* "(())" -> true
*
* "())(" -> false
*
* "()))" -> false
*
* ")(" -> false
*
* "()()" -> true
*/
public boolean validParen(String input) {
// implementation?
}
Попробуйте написать функцию, которая выполняет следующую операцию: '(состояние, символ) -> state', где' state' содержит информацию об уже обработанный 'input' (по крайней мере, его правильность), а' symbol' - следующий символ 'input'. – user3707125
Что он должен вернуть, если найден персонаж без паренса? – Andreas
Я начал бы с рассмотрения каждого символа, считая количество левых ** (** и правых **) ** (отдельно) (очевидно, начиная с начала строки до конца). Если результат равен 0, false. Если результат тот же, что и не false. Однако, если число прав больше, чем левых, то сразу же ложь. Не полностью проверили действительность, но это начало. Это будет использовать цикл. – MikeT