Просто поместите символ x
и пробел в не захватывающую группу и сделайте его необязательным, используя квантификатор ?
:
^(?:x )?\(([A-Z])\)
В качестве альтернативы, вы все еще можете использовать оператор |
, но иметь только одну группу захвата, если вы используете положительный Lookbehind :
(?<=^x |^)\(([A-Z])\)
Вы даже можете сделать еще один шаг вперед и полностью избавиться от группы захвата и просто использовать заглавную букву в качестве всего совпадения, если хотите:
(?<=^x \(|^\()[A-Z](?=\))
1117 Хотя это было бы излишним. Я бы пошел с первым решением.
Так, в конечных точках у Вас есть 64 команды. Таким образом, существует набор, так или иначе, 64 Команд.
Но они разделены на пары, и для каждой пары, существует победитель. И в средних скобках, тот победитель на самом деле появился из скобки, таким образом, я думаю, что Ваш объект скобки на самом деле похож:
public class Bracket
{
Team winner; //if this is null or whatever, then we don't have a winner yet
Bracket topBracket;
Bracket bottomBracket;
}
... и когда Вы инстанцируете своих концов, Вы просто оставили бы эти два пустых указателя подскобок только с победителем.
Для обработки двойного устранения существует вторая скобка, которая является скобкой проигравших. Было бы хорошо, если Вы могли бы автоматически обработать добавление проигравших в эту скобку (разработайте скобку, которая запускается с 32, кто преуменьшает к 16, добавляет в этих 16 проигравших от раунда 2 скобки победителя, и т.д.), но это - вся реализация. Структура данных не должна изменяться для размещения этого, Вам просто нужно больше из них.
Что относительно полного Двоичного дерева, где первый раунд запускается в вершинах и затем перемещается вверх.
Я только что заметил этот вопрос на боковой панели другого вопроса, который мне был задан, и решил вмешаться:
Я в процессе разработки полнофункционального Tournament API, и я открываю его исходный код.
Он еще не создает турниров с двойным выбыванием, но структура данных для турниров с одиночным выбыванием была недавно пересмотрена для поддержки древовидной структуры с двойным выбыванием.