ホームページ >Java >&#&チュートリアル >Java で 2 つの文字列が相互に回転された単語であるかどうかを判断する方法に関するコード例の共有

Java で 2 つの文字列が相互に回転された単語であるかどうかを判断する方法に関するコード例の共有

黄舟
黄舟オリジナル
2017-05-14 09:18:532292ブラウズ

この記事では、文字列aとbが相互に回転する単語であるかどうかを判断するための関連知識を主に紹介し、優れた参考値を持っています。以下のエディタで見てみましょう

ローテーションワード: 文字列 str の任意の部分を後ろに移動して形成される新しい文字列を、文字列 str のローテーションワードと呼びます。

たとえば、abc のローテーションワードには、abc、acb、cba、...が含まれます。

str1 と str2 が互いのローテーションワードであるかどうかを判断するには、最適解は O(n) の時間計算量になります ( n は文字列) length)

方法は次のとおりです:

1. 長さが等しいかどうかを判断します

2. 長さが等しい場合は、大きな文字列 str1+str1 ( str1+str1 には、str1 の回転されたすべての単語が含まれます)

3. KPM アルゴリズムを使用して、大きな文字列に str2 が含まれるかどうかを判断します

まず、KPM アルゴリズムを理解する必要があります。

りー

以上がJava で 2 つの文字列が相互に回転された単語であるかどうかを判断する方法に関するコード例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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