Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ## Bagaimanakah Penggabungan Rentetan Boleh Menentukan Putaran Rentetan dengan Cekap?

## Bagaimanakah Penggabungan Rentetan Boleh Menentukan Putaran Rentetan dengan Cekap?

Barbara Streisand
Barbara Streisandasal
2024-10-24 18:32:15485semak imbas

## How Can String Concatenation Efficiently Determine String Rotation?

Menentukan Putaran Rentetan Menggunakan Penggabungan Rentetan

Cabaran yang biasa dihadapi dalam temu bual pengaturcaraan melibatkan pengesahan sama ada satu rentetan ialah versi yang diputar bagi yang lain. Memandangkan dua rentetan s1 dan s2, tugasnya adalah untuk memeriksa dengan cekap sama ada satu adalah sekadar pilih atur kitaran yang lain.

Dalam keadaan ini, calon menyediakan penyelesaian yang melibatkan mengenal pasti titik putaran dan memecahkan s2 menjadi dua segmen, s2a dan s2b. Dengan menggabungkan segmen ini dan membandingkan hasilnya dengan s1, putaran boleh disahkan.

Walau bagaimanapun, penemuduga menyatakan keutamaan untuk pendekatan yang lebih mudah. Berikut ialah penyelesaian yang lebih mudah menggunakan penggabungan rentetan dan carian rentetan:

Pelaksanaan Java:

<code class="java">public static boolean isRotation(String s1, String s2) {
    return (s1.length() == s2.length()) && ((s1 + s1).indexOf(s2) != -1);
}</code>

Pelaksanaan Python:

<code class="python">def is_rotation(s1, s2):
    return len(s1) == len(s2) and s2 in s1 * 2</code>

Dalam penyelesaian ini, kami terlebih dahulu memastikan kedua-dua rentetan adalah sama panjang. Kemudian, kami menggabungkan s1 dengan dirinya sendiri, dengan berkesan mencipta rentetan yang mengandungi kedua-dua rentetan asal dan versi diputarnya. Dengan menyemak sama ada s2 wujud dalam rentetan bercantum ini, kita boleh menentukan sama ada satu adalah putaran yang lain.

Atas ialah kandungan terperinci ## Bagaimanakah Penggabungan Rentetan Boleh Menentukan Putaran Rentetan dengan Cekap?. 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