Rumah >pembangunan bahagian belakang >C++ >Adakah Rentetan Putaran Lain? Pendekatan Mudah di Jawa.

Adakah Rentetan Putaran Lain? Pendekatan Mudah di Jawa.

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 01:56:30678semak imbas

Is a String a Rotation of Another? A Simple Approach in Java.

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:

  • Pastikan s1 dan s2 mempunyai panjang yang sama.
  • Sahkan jika s2 wujud sebagai subrentetan dalam s1, yang dicapai dengan menggabungkan s1 dengan dirinya sendiri dan mencari s2.

Di Java, kaedah ini boleh dilaksanakan seperti berikut:

<code class="java">boolean isRotation(String s1,String s2) {
    return (s1.length() == s2.length()) &amp;&amp; ((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!

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