Pythonの単語のリストにいくつの異なるローテーショングループがあるかを見つけるためのプログラム
すべての固有の回転を保持する文字列の回転グループがあるとします。入力が「567」の場合、これは「675」と「756」に回転でき、それらはすべて同じ回転グループにあります。文字列の単語のリストがある場合は、各単語をローテーショングループでグループ化し、グループの総数を見つける必要があります。
したがって、入力がwords =["xyz"、 "ab"、 "ba"、 "c"、 "yzx"]の場合、3つの回転グループがあるため出力は3になります-["xyz"、 "yzx"]、["ab"、 "ba"]、["c"]。
これを解決するには、次の手順に従います-
- s:=新しいセット
- ct:=0
- 単語のiごとに、
- 私がsにいない場合は、
- ct:=ct + 1
- 0からiのサイズの範囲のjについては、
- temp:=iの部分文字列[インデックスjから最後まで]iの部分文字列を連結[最初からjまで])
- tempをsに挿入
- 私がsにいない場合は、
- return ct
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, words): s=set() ct=0 for i in words: if i not in s: ct+=1 for j in range(len(i)): s.add(i[j:]+i[:j]) return ct ob = Solution() print(ob.solve(["xyz", "ab", "ba", "c", "yzx"]))
入力
["xyz", "ab", "ba", "c", "yzx"]
出力
3
-
リストの累積合計を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが与えられたので、累積合計でリストを作成する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # cumulative sum def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) &
-
配列ローテーション用のPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −テキストとパターンが与えられた場合、パターンのすべての出現とその順列(またはアナグラム)をテキストで印刷する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # maximum value MAX = 300 # compare def compare(arr1, arr2): for i in range(MAX): if arr1[i] != arr2[i]: &nbs