Например, пусть строка будет первыми 10 цифрами pi, 3141592653
, а подпоследовательность будет 123
. Обратите внимание, что последовательность выполняется дважды:
3141592653
1 2 3
1 2 3
Это был вопрос интервью, на который я не мог ответить, и я не могу придумать эффективный алгоритм, и это подслушивает меня. Я чувствую, что это должно быть возможно сделать с простым регулярным выражением, но такие, как 1.*2.*3
, не возвращают каждую подпоследовательность. Моя наивная реализация в Python (считайте 3 за каждые 2 после каждого 1) работает в течение часа, и это не сделано.