Pengesahan Putaran dengan Penggabungan Rentetan
Dalam temu bual pembangunan perisian, calon sering menghadapi soalan rumit yang menguji kemahiran menyelesaikan masalah mereka. Satu cabaran sedemikian ialah menentukan sama ada satu rentetan ialah versi yang diputarkan bagi yang lain.
Pertimbangkan soalan temu bual berikut:
Soalan:
Diberi dua rentetan , s1 dan s2, bagaimana anda menentukan sama ada s1 ialah versi berputar s2?
Contoh:
Sebelum ini, seorang yang ditemuduga mencadangkan penyelesaian yang melibatkan mencari titik putaran dan subrentetan belah yang bercantum. Walau bagaimanapun, penemuduga meminta pendekatan yang lebih mudah.
Penyelesaian Optimum:
Penyelesaian yang lebih cekap menggunakan penggabungan rentetan. Ia menyemak sama ada s2 ialah subrentetan s1 yang digabungkan dengan dirinya sendiri. Ini memastikan bahawa semua kemungkinan putaran dipertimbangkan.
Pseudokod:
algorithm checkRotation(string s1, string s2) if( len(s1) != len(s2)) return false if( substring(s2,concat(s1,s1)) return true return false end
Pelaksanaan Java:
<code class="java">boolean isRotation(String s1,String s2) { return (s1.length() == s2.length()) && ((s1+s1).indexOf(s2) != -1); }</code>
Algoritma ini menawarkan cara yang mudah dan berkesan untuk menentukan sama ada rentetan adalah putaran yang lain, memenuhi permintaan penemuduga untuk penyelesaian yang lebih mudah.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, menggabungkan format soalan-jawapan dan memfokuskan pada perkara penting: **Pilihan 1 (Terus & Ringkas):** * **Adakah String s1 merupakan Putaran String s2? Penyelesaian Mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!