Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定された文字列に複数回出現するk長の部分文字列をカウントするプログラム


文字列sと数kがあるとすると、sで複数回発生するsのk長のサブ文字列の数を見つける必要があります。

したがって、入力がs ="xxxyyy"、k =2の場合、出力は2

になります。

これを解決するには、次の手順に従います-

  • 見た:=新しいリスト
  • 範囲0からs-kのサイズのiの場合、do
    • t:=sの部分文字列[インデックスiからi+k-1まで]
    • 表示の最後にtを挿入
  • mp:=見られたすべての異なる要素とそれらの出現のマップ
  • 発生が1より大きいmpの各要素のすべての発生の合計を返します

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, s, k):
      from collections import Counter
      seen = []
      for i in range(len(s) - k + 1):
         t = s[i : i + k]
         seen.append(t)
         s = Counter(seen)
      return sum(1 for x in s.values() if x > 1)
ob = Solution()
print(ob.solve("xxxyyy",2))

入力

"xxxyyy",2

出力

2

  1. 指定された文字列が母音回文であるかどうかを確認するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列(母音と子音の両方の文字を含む)が与えられ、すべての子音を削除してから、結果の文字列が回文であるかどうかを確認します。 ここでは、最初に文字列に存在するすべての子音を削除します。各値を1から計算された最小値まで除算することによって計算されて除数を計算するループ 条件が真であると評価されるたびに、カウンターは1ずつ増加します。 文字列内のすべての子音を削除します。ここで、母音の文字列が回文であるかどうか、つまり、指定された文字列とその反転が同一であるかどうかを確認します。それがpalindromep

  2. 指定された文字列がパングラムであるかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列入力が与えられた場合、その文字列がパングラムであるかどうかを確認するPythonプログラムを生成する必要があります。 パングラムは、英語のアルファベットコレクションのすべての文字を含む文/一連の単語です。 では、問題を解決する方法を見てみましょう 入力文字列に存在する各文字が、手動で宣言するアルファベットセットに属しているかどうかをチェックするループを使用します。 上記のアプローチの実装は、-によって与えられます。 例 import string def ispangram