Я не думаю, что можно иметь лучшее, чем линейное время, количество шариков. Чтобы доказать, что строка не соответствует ни одному из глобусов, вы должны проверить соответствие каждому из них, или вы никогда не узнаете, совпадает ли строка, которую вы пропустили, или нет.
РЕДАКТИРОВАТЬ: В общем случае это невозможно с использованием шаров. Как отмечается в комментарии, возможно комбинирование некоторых комбинаций глобусов (на первый взгляд может быть полезно три дерева, где каждый узел указывает следующую букву для сопоставления и глобусы, которые вам еще нужно проверить), что вызывает меньший объем работы поиск.
В общем случае также возможно преобразовать набор глобусов в соответствующее регулярное выражение.
Является ли производительность этого соответствия такой проблемой, что вам нужно ее улучшить? Рассматривали ли вы, если более фундаментальное алгоритмическое переписывание может быть лучше?