ある文字列が別の文字列の回転であるかどうかを判断する方法
ソフトウェアの面接では、候補者は次のような興味深い質問に遭遇することがあります。2 つの文字列が与えられたとします。 s1 と s2、s1 が s2 の 回転 バリアントかどうかはどうやって確認しますか?
ピボット ポイントで分割され、2 つの半分が逆の順序で再接続されると、文字列が回転します。 。たとえば、「stackoverflow」は、「tackoverflows」または「ackoverflowst」になるように回転できます。
インタビュー対象者が提案した、考えられる解決策の 1 つは、s1 の部分文字列である s2 の最長のプレフィックスを見つけることです。これにより回転点が特定されます。見つかったら、s2 を 2 つの部分文字列に分割し、それらの連結が s1 と等しいかどうかを確認できます。
しかし、インタビュアーは、より単純な解決策を要求しました。次のアプローチを検討してください。
Java では、このメソッドは次のように実装できます。
<code class="java">boolean isRotation(String s1,String s2) { return (s1.length() == s2.length()) && ((s1+s1).indexOf(s2) != -1); }</code>
このソリューションは、文字列の連結と検索を使用することで、1 つの文字列がローテーションされたバージョンであるかどうかを効率的に判断します。別の。
以上が文字列は別の文字列の回転ですか? Java でのシンプルなアプローチ。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。