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

Pythonで特定の単語を形成するために文字を再配置できるサブ文字列の数を検索します


文字列S(すべての文字は小文字)があるとすると、この単語を形成するために文字を再配置できる長さ4のすべてのサブ文字列の数を見つける必要があります。 「鳥」。

したがって、入力が「birdb」のような場合、出力は2になります。

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

  • cnt:=0

  • 範囲0からs-3のサイズのiの場合、実行

    • bird:=[0、0、0、0]

      の配列
    • iからi+4の範囲のjの場合、実行

      • s[j]が'b'と同じ場合、

        • bird [0]:=bird [0] + 1

      • それ以外の場合、s[j]が'i'と同じである場合、

        • bird [1]:=bird [1] + 1

      • それ以外の場合、s[j]が'r'と同じである場合、

        • bird [2]:=bird [2] + 1

      • それ以外の場合、s[j]が'd'と同じである場合、

        • bird [3]:=bird [3] + 1

      • 鳥が[1,1,1,1]と同じ場合、

        • cnt:=cnt + 1

  • cntを返す

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

def number_of_occurrence(s):
   cnt = 0
   for i in range(0, len(s) - 3):
      bird = [0, 0, 0, 0]
      for j in range(i, i + 4):
         if s[j] == 'b':
            bird[0] += 1
         elif s[j] == 'i':
            bird[1] += 1
         elif s[j] == 'r':
            bird[2] += 1
         elif s[j] == 'd':
            bird[3] += 1
      if bird == [1,1,1,1]:
         cnt += 1
   return cnt
s = "birdb"
print(number_of_occurrence(s))

入力

"birdb"

出力

2

  1. Pythonの文字列のペアで一致する文字の数を数える

    2つの文字列が与えられます。 2番目の文字列にも存在する最初の文字列の文字数を数える必要があります。 セット付き set関数は、文字列内のすべての要素に一意の値を提供します。また、指定された2つの文字列間の共通要素を見つける&演算子も使用します。 例 strA = 'Tutorials Point' uniq_strA = set(strA) # Given String print("Given String\n",strA) strB = 'aeio' uniq_strB = set(strB) # Given String print

  2. Pythonで文字列の最初に繰り返される単語を見つけますか?

    1つの文字列が与えられます。私たちのタスクは、与えられた文字列の最初に繰り返される単語を見つけることです。この問題を実装するために、Pythonコレクションを使用しています。コレクションから、Counter()メソッドを取得できます。 アルゴリズム Repeatedword(n) /* n is the string */ Step 1: first split given string separated by space into words. Step 2: now convert the list of words into a dictionary. Step 3: travers