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

Pythonの文字列のインデックスペア


テキスト文字列と単語(文字列のリスト)があるとすると、部分文字列text [i] ... textとなるように、すべてのインデックスペア[i、j]を検索する必要があります。 [j]は単語のリストにあります。したがって、文字列が「ababa」のようで、単語配列が[「aba」、「ab」]のようである場合、出力は[[0,1]、[0,2]、[2,3]、[2]になります。 、4]]。一致が重複する可能性があることに気付くことがあります。「aba」は[0,2]と[2,4]で一致しています。

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

  • res:=空のリスト
  • 0から文字列の長さの範囲のiの場合
    • i+1から文字列の長さ+1までの範囲のjの場合
      • 単語のインデックスiからjまでの文字列のサブストリングの場合-
        • 結果の配列に(i、j – 1)を追加します
  • 結果を返す
例(Python)

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

class Solution(object):
   def indexPairs(self, text, words):
      result = []
      for i in range(len(text)):
         for j in range(i+1,len(text)+1):
            if text[i:j] in words:
               result.append([i,j-1])
      return result
ob1 = Solution()
print(ob1.indexPairs("ababa",["aba","ab"]))

入力

"ababa"
["aba","ab"]

出力

[[0,1],[0,2],[2,3],[2,4]]

  1. 文字列に偶数の長さの単語を出力するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を指定すると、文字列内のすべての単語を均等な長さで表示する必要があります。 アプローチ split()関数を使用して入力文字列を分割します。 forを使用して文字列の単語を繰り返し処理します ループ& len()を使用して単語の長さを計算します 機能。 長さが均等であると評価されると、単語が画面に表示されます。 それ以外の場合、画面に単語は表示されません。 次に、以下の実装を見てみましょう- 例 def printWords(s): # split

  2. 文字列をPythonで単語のリストに変換する方法は?

    単語のリスト内の文字列を変換するには、空白で文字列を分割する必要があります。文字列クラスからsplit()を使用できます。このメソッドのデフォルトの区切り文字は空白です。つまり、文字列で呼び出されると、その文字列が空白文字で分割されます。 例 >>> "Please split this string".split() ['Please', 'split', 'this', 'string'] 正規表現を使用して、この問題を解決することもできます。正規表現\s +を区切り文字として使用して、