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

Pythonで特定の文字列内の個別のサブ文字列の数を見つけるプログラム


's'で示される部分文字列が与えられたとします。一意の部分文字列を見つけて、これらの部分文字列の数を出力として返す必要があります。

したがって、入力がs ='prrstvt'のような場合、出力は26になります。

個別の部分文字列は-

になります

'pr'、'rrs'、'st'、'rr'、'tv'、'rstv'、'stvt'、'prrstv'、'prrstvt'、'rrstvt'、's'、'prrst'、'stv '、' rrstv'、' rst'、' v'、' tvt'、' rstvt'、' r'、' rs'、' vt'、' t'、' prr'、' p'、' rrst'、および「prrs」。

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

  • 訪問:=新しい地図
  • 各インデックスind、および値let in sについて、実行します
    • temp:=新しいセット
    • ind-1がvisitedに存在する場合、
      • visited [ind-1]のhas_letごとに、
          を実行します。
        • リストの臨時雇用者に(has_let + let)を追加
    • リストの臨時雇用者に(let)を追加
    • visited [ind]:=temp
  • res:=新しいセット
  • 訪問したセットごとに、
    • resに(visited [sets])を追加
  • 解像度のサイズを返す

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

def solve(s):
   visited = dict()
   for ind, let in enumerate(s):
      temp = set()
      if ind-1 in visited:
         for has_let in visited[ind-1]:
            temp.add(has_let+let)
      temp.add(let)
      visited[ind] = temp
   res = set()
   for sets in visited:
      res.update(visited[sets])
   return len(res)

print(solve('prrstvt'))

入力

'prrstvt'

出力

26

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

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列入力が与えられた場合、それが回文であるかどうかを確認するためにPython関数を作成する必要があります。 文字列の逆が文字列と同一である場合、文字列は回文と呼ばれます。 これは2つの方法で実行できます- スライスによる反転 負の索引付けによる比較 ここでは、スライスの助けを借りて文字列の反転を学習します。 スライスの方法で文字列を反転するには、次のステートメントを指定します- Str[ : : -1 ] 開始パラメータと終了パラメータが割り当てられておらず、ステップ値

  2. 指定された文字列のバイナリ表現で最大の連続する1の長さを見つけるPythonプログラム。

    数を指定して、バイナリ表現で最も長い連続する1の長さを見つけます。 例 Input: n = 15 Output: 4 The binary representation of 14 is 1111. アルゴリズム Step 1: input the number. Step 2: use one counter variable c=0. Step 3: Count the number of iterations to reach i = 0. Step 4: This operation reduces length of every sequence of 1s by one.