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
Lepaskan: 2024-12-05 09:18:19
asal
541 orang telah melayarinya

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.
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan