Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencapai rentetan membalikkan Jika fungsi terbina dalam PHP tidak dibenarkan, sila gunakan pengaturcaraan untuk mencapainya?

Bagaimana untuk mencapai rentetan membalikkan Jika fungsi terbina dalam PHP tidak dibenarkan, sila gunakan pengaturcaraan untuk mencapainya?

PHPz
PHPzasal
2023-03-29 10:13:36616semak imbas

Dalam pengaturcaraan, membalikkan rentetan adalah masalah yang sangat biasa, dan kebanyakan bahasa pengaturcaraan mempunyai fungsi membalik rentetan terbina dalam. Walau bagaimanapun, jika fungsi terbina dalam tidak dibenarkan, bagaimanakah kita boleh mencapai rentetan membalikkan?

Artikel ini akan memperkenalkan beberapa kaedah dan teknik pengaturcaraan yang berbeza untuk melaksanakan flipping rentetan. Kaedah ini berfungsi dengan kebanyakan bahasa pengaturcaraan, termasuk PHP.

Kaedah 1: Lelaran gelung

Ini ialah kaedah membalik rentetan yang paling biasa. Kaedahnya sangat mudah, hanya mula melintasi dari aksara terakhir rentetan dan sambung aksara ke rentetan baru satu demi satu.

Kita boleh melaksanakan kaedah ini dengan kod PHP berikut:

function reverse_string($str) {
  $new_str = "";
  $len = strlen($str);
  for ($i = $len - 1; $i >= 0; $i--) {
    $new_str .= $str[$i];
  }
  return $new_str;
}

Menggunakan kaedah ini, jika kita mahu membalikkan rentetan "Hello World!", ia akan mengeluarkan "!dlroW olleH ".

Kaedah 2: Rekursi

Rekursi ialah teknik pengaturcaraan yang sangat berguna. Untuk melaksanakan kaedah rekursif membalikkan rentetan, kita perlu membahagikan rentetan kepada dua bahagian: aksara pertama dan aksara yang tinggal. Kita boleh meletakkan aksara pertama terakhir dan memanggil fungsi secara rekursif untuk memproses aksara yang tinggal.

Kod PHP berikut melaksanakan kaedah ini:

function reverse_string($str) {
  if (strlen($str) == 0) {
    return $str;
  } else {
    return reverse_string(substr($str, 1)) . $str[0];
  }
}

Menggunakan kaedah ini, jika anda ingin menyelak rentetan "Hello World!", anda akan mengeluarkan "!dlroW olleH".

Kaedah 3: Gunakan tindanan

Jika anda biasa dengan struktur data, anda mungkin pernah memikirkan kaedah ini. Melibas rentetan sangat mudah menggunakan timbunan. Kami menggunakan timbunan untuk menyimpan semua aksara dalam rentetan, kemudian pop setiap aksara daripada timbunan dan gabungkannya bersama-sama untuk mendapatkan rentetan terbalik.

Kod PHP berikut melaksanakan kaedah ini:

function reverse_string($str) {
  $stack = new SplStack();
  $len = strlen($str);
  for ($i = 0; $i < $len; $i++) {
    $stack->push($str[$i]);
  }
  $new_str = "";
  while (!$stack->isEmpty()) {
    $new_str .= $stack->pop();
  }
  return $new_str;
}

Menggunakan kaedah ini, jika anda ingin menyelak rentetan "Hello World!", anda akan mengeluarkan "!dlroW olleH".

Ringkasan

Terdapat banyak cara untuk melaksanakan pembalikan rentetan Artikel ini memperkenalkan tiga kaedah biasa: lelaran gelung, rekursi dan menggunakan tindanan. Kaedah ini adalah berdasarkan teknik pengaturcaraan dan bukannya fungsi terbina dalam, jadi ia boleh digunakan dalam mana-mana bahasa pengaturcaraan.

Atas ialah kandungan terperinci Bagaimana untuk mencapai rentetan membalikkan Jika fungsi terbina dalam PHP tidak dibenarkan, sila gunakan pengaturcaraan untuk mencapainya?. 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