ホームページ >バックエンド開発 >C++ >## 文字列の連結で文字列の回転を効率的に決定するにはどうすればよいでしょうか?

## 文字列の連結で文字列の回転を効率的に決定するにはどうすればよいでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 18:32:15763ブラウズ

## How Can String Concatenation Efficiently Determine String Rotation?

文字列連結を使用した文字列の回転の決定

プログラミングの面接でよく遭遇する課題には、ある文字列が別の文字列の回転バージョンであるかどうかを検証することが含まれます。 2 つの文字列 s1 と s2 が与えられた場合、タスクは、一方が他方の単なる巡回置換であるかどうかを効率的にチェックすることです。

この例では、候補者は、回転点を特定し、s2 を分割することを含む解決策を提供しました。 2 つのセグメント、s2a と s2b。これらのセグメントを連結し、その結果を s1 と比較することで、回転を確認できます。

しかし、インタビュアーは、より単純なアプローチを好むと表明しました。文字列の連結と文字列検索を使用した簡単な解決策は次のとおりです。

Java 実装:

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

Python 実装:

<code class="python">def is_rotation(s1, s2):
    return len(s1) == len(s2) and s2 in s1 * 2</code>

このソリューションでは、まず両方の文字列の長さが等しいことを確認します。次に、s1 をそれ自体と連結し、元の文字列とその回転されたバージョンの両方を含む文字列を効果的に作成します。この連結された文字列内に s2 が存在するかどうかを確認することで、一方が他方の回転であるかどうかを判断できます。

以上が## 文字列の連結で文字列の回転を効率的に決定するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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