Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Semua Pilihatur Rentetan dalam PHP?

Bagaimanakah Saya Boleh Menjana Semua Pilihatur Rentetan dalam PHP?

DDD
DDDasal
2024-12-05 09:18:19540semak imbas

How Can I Generate All Permutations of a String in PHP?

Permutasi Rentetan dalam PHP

Dalam PHP, menjana semua pilih atur aksara dalam rentetan melibatkan algoritma yang meneroka semua kemungkinan gabungan secara sistematik .

Menjejak ke belakang Pendekatan

Satu pendekatan yang berkesan ialah menjejak ke belakang. Berikut ialah pelaksanaan PHP:

function permute($str,$i,$n) {
   if ($i == $n)
       print "$str\n";
   else {
        for ($j = $i; $j < $n; $j++) {
          swap($str,$i,$j);
          permute($str, $i+1, $n);
          swap($str,$i,$j); // backtrack.
       }
   }
}
function swap(&amp;$str,$i,$j) {
    $temp = $str[$i];
    $str[$i] = $str[$j];
    $str[$j] = $temp;
}   

$str = "hey";
permute($str,0,strlen($str)); // call the function.

Penjelasan

  • Fungsi permute() secara sistematik meneroka semua pilih atur yang mungkin.
  • Ia memanggil secara rekursif sendiri dengan peningkatan nilai $i, indeks watak itu ditukar.
  • Fungsi swap() menukar aksara pada indeks $i dan $j.
  • Rekursi berundur apabila hujung rentetan dicapai, mencetak pilih atur yang terhasil.

Output

Melaksanakan kod dengan $str = "hey" menghasilkan output yang dijangkakan:

hey
hye
ehy
eyh
yeh
yhe

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Pilihatur Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn