Pythonで1つの一意の文字を含む文字列の総数を見つけるプログラム
小文字の文字列があるとすると、1つの一意の文字を含むサブ文字列の総数を見つける必要があります。
したがって、入力が「xxyy」のような場合、サブストリングが[x、x、xx、y、y、yy]
であるため、出力は6になります。これを解決するには、次の手順に従います-
- 合計:=0
- 前の:=空白の文字列
- sの各文字cについて、
- cが以前と同じでない場合は、
- 前:=c
- temp:=1
- それ以外の場合、
- temp:=temp + 1
- 合計:=合計+温度
- cが以前と同じでない場合は、
- 合計を返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, s): total = 0 previous = '' for c in s: if c != previous: previous = c in_a_row = 1 else: in_a_row += 1 total += in_a_row return total ob = Solution() print(ob.solve("xxyy"))
入力
"xxyy"
出力
6
-
Pythonで特定のエッジを含む一意のパスの数をカウントするプログラム
(u、v)の形式のエッジのリストがあり、これらがツリーを表しているとします。エッジごとに、入力で指定されたのと同じ順序で、そのエッジを含む一意のパスの総数を見つける必要があります。 したがって、入力がエッジのような場合=[[0、1]、[0、2]、[1、3]、[1、4]] その場合、出力は[6、4、4、4]になります。 これを解決するには、次の手順に従います- adj:=指定されたエッジからの隣接リスト count:=空のマップ 関数dfs()を定義します。これにはx、親が必要です count [x]:=1 adj [x]のnbごとに、実行 n
-
文字列にすべての一意の文字が含まれているかどうかを確認するPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 sring入力が与えられた場合、文字列にすべての一意の文字が含まれているかどうかを確認する必要があります。 アプローチ ブール値の配列を作成します。ここで、インデックスiの変数フラグは、アルファベットの文字iが文字列に含まれているかどうかを示します。 この文字に2回目に遭遇したとき、文字列文字は一意ではなくなったため、すぐにfalseを返すことができます。 文字列の長さがアルファベットに表示される一意の文字数の値を超える場合も、falseを返すことができます。 文