ホームページ  >  記事  >  バックエンド開発  >  文字列は別の文字列の回転ですか? Java でのシンプルなアプローチ。

文字列は別の文字列の回転ですか? Java でのシンプルなアプローチ。

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 01:56:30568ブラウズ

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

ある文字列が別の文字列の回転であるかどうかを判断する方法

ソフトウェアの面接では、候補者は次のような興味深い質問に遭遇することがあります。2 つの文字列が与えられたとします。 s1 と s2、s1 が s2 の 回転 バリアントかどうかはどうやって確認しますか?

ピボット ポイントで分割され、2 つの半分が逆の順序で再接続されると、文字列が回転します。 。たとえば、「stackoverflow」は、「tackoverflows」または「ackoverflowst」になるように回転できます。

インタビュー対象者が提案した、考えられる解決策の 1 つは、s1 の部分文字列である s2 の最長のプレフィックスを見つけることです。これにより回転点が特定されます。見つかったら、s2 を 2 つの部分文字列に分割し、それらの連結が s1 と等しいかどうかを確認できます。

しかし、インタビュアーは、より単純な解決策を要求しました。次のアプローチを検討してください。

  • s1 と s2 が同じ長さであることを確認します。
  • s2 が s1 内の部分文字列として存在するかどうかを確認します。これは、s1 をそれ自体と連結し、 s2.

Java では、このメソッドは次のように実装できます。

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

このソリューションは、文字列の連結と検索を使用することで、1 つの文字列がローテーションされたバージョンであるかどうかを効率的に判断します。別の。

以上が文字列は別の文字列の回転ですか? Java でのシンプルなアプローチ。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。