Допустим, ваш массив букв выглядит так: «ABCDEFGH». У вас есть три индекса (i, j, k), указывающие, какие буквы вы собираетесь использовать для текущего слова. Вы начинаете с:
A B C D E F G H ^ ^ ^ i j k
Сначала вы меняете k, поэтому следующий шаг выглядит так: :
A B C D E F G H ^ ^ ^ i j k
Если вы достигли конца, вы продолжаете и меняете j, а затем k.
A B C D E F G H ^ ^ ^ i j k A B C D E F G H ^ ^ ^ i j k
Как только вы достигнете G, вы также начнете меняться.
A B C D E F G H ^ ^ ^ i j k A B C D E F G H ^ ^ ^ i j k ...
function initializePointers($cnt) {
$pointers = [];
for($i=0; $i<$cnt; $i++) {
$pointers[] = $i;
}
return $pointers;
}
function incrementPointers(&$pointers, &$arrLength) {
for($i=0; $i
На основе https://stackoverflow.com/a/127898/2628125 , но более абстрактным для любого размера указателей.