Cara Menentukan Sama ada Satu Rentetan Adalah Putaran Yang Lain
Dalam temu bual perisian, calon mungkin menghadapi soalan yang menarik seperti ini: diberikan dua rentetan s1 dan s2, bagaimana anda memastikan sama ada s1 ialah varian diputar bagi s2?
Sebuah rentetan diputar apabila ia telah dibelah pada titik pangsi dan kedua-dua bahagian disambung semula dalam susunan terbalik . Contohnya, "stackoverflow" boleh diputar menjadi "tackoverflows" atau "ackoverflowst".
Satu penyelesaian yang mungkin, yang dicadangkan oleh penemu duga, melibatkan mencari awalan terpanjang bagi s2 yang merupakan subrentetan s1. Ini mengenal pasti titik putaran. Setelah ditemui, s2 boleh dibahagikan kepada dua subrentetan dan diperiksa sama ada gabungannya sama dengan s1.
Walau bagaimanapun, penemuduga meminta penyelesaian yang lebih mudah. Pertimbangkan pendekatan berikut:
Di Java, kaedah ini boleh dilaksanakan seperti berikut:
<code class="java">boolean isRotation(String s1,String s2) { return (s1.length() == s2.length()) && ((s1+s1).indexOf(s2) != -1); }</code>
Dengan menggunakan penyambungan rentetan dan carian, penyelesaian ini dengan cekap menentukan sama ada satu rentetan ialah versi yang diputar lain.
Atas ialah kandungan terperinci Adakah Rentetan Putaran Lain? Pendekatan Mudah di Jawa.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!