Как получить все комбинации строки с фиксированной позицией символа? - PullRequest
0 голосов
/ 08 сентября 2011

Мне нужно найти способ создания всех комбинаций строки с определенным символом, которые всегда отображаются в PHP.

Например, учитывая строку 'ABCD', и я хочу получить все комбинации строки с присутствующим символом 'B', я хочу получить:

массив ('B', ' ДО НАШЕЙ ЭРЫ ', 'BCD', 'B D', 'AB', «Азбука», 'AB D', 'ABCD')

Недостающие символы заменяются пробелами. У кого-нибудь есть идеи?

1 Ответ

6 голосов
/ 08 сентября 2011

Это просто, если вы думаете, что каждая буква в строке либо «включена», либо «выключена» - как бит в двоичном числе. На самом деле, вы можете представить его таковым.

Так что думайте о вашей строке как о четырехбитном числе, которое может быть любым от 0b0000 = 0 = "" до 0b1111 = 15 = "ABCD". Затем вы можете просто просмотреть все числа от 0 до 15 и найти соответствующую «перестановку», посмотрев, какие биты установлены.

Например, «перестановка» 6: 0b0110 -> " BC "

Надеюсь, это поможет!

PS: Если это домашнее задание, вы должны пометить его как таковое - здесь немного не так.

PPS: Ваши " перестановки " на самом деле " комбинаций. " Связаны с Википедией на всякий случай, если вам интересно.

...