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

Pythonで単語間のスペースを再配置するプログラム


いくつかのスペースの間に配置されたいくつかの単語を含む文字列sがあるとします。各単語は、少なくとも1つのスペースで区切られます。隣接する単語のすべてのペアの間に同じ数のスペースがあり、各単語間のスペースの数が最大になるように、スペースを再配置する必要があります。すべてのスペースを均等に再配分できない場合は、最後に余分なスペースを配置できます。

したがって、入力がs ="I love Programming"の場合、出力は "I love Programming"になります。スペースが分散されていることを確認してください。単語間には、5つのスペースがあります。

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

  • res:=空白の文字列

  • total_sp:=s内のスペースの数

  • suff_sp_cnt:=total_sp

  • text_array:=sからの単語のリスト

  • num_words:=text_arrayのサイズ

  • num_wordsが1と同じ場合、

    • res:=text_array[0]はtotal_spのスペース数と連結します

    • 解像度を返す

  • sep_size:=total_spの商/(num_words-1)

  • sep:=sep_sizeスペースの数

  • text_array-1の各iについて、実行

    • res:=res + i

    • res:=res + sep

    • suff_sp_cnt:=suff_sp_cnt --sep_size

  • suff_sp_cnt:=suff_sp_cnt + sep_size

  • res:=左右から余分なスペースを削除する

  • res:=resは最後にsuff_sp_cntスペースの数を連結します

  • 解像度を返す

例(Python)

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

def solve(s):
   res = ""
   total_sp = s.count(" ")
   suff_sp_cnt = total_sp

   text_array = s.split()
   num_words = len(text_array)

   if num_words == 1:
      res = text_array[0] + total_sp * " "
      return res

   sep_size = total_sp // (num_words - 1)
   sep = sep_size * " "

   for i in text_array:
      res += i
      res += sep
      suff_sp_cnt -= sep_size

   suff_sp_cnt += sep_size
   res = res.strip()
   res += suff_sp_cnt * " "

   return res

s = " I love programming "
print(solve(s))

入力

" I love programming "

出力

" I love programming "

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

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

  2. 大文字で始まる単語の間にスペースを入れるPythonの正規表現

    ここで解決しようとしている問題は、CamelCaseを単語を区切るように変換することです。正規表現を使用してこれを直接解決するには、指定された文字列内の大文字のすべての出現箇所を検索し、その前にスペースを置きます。 reモジュールからsubメソッドを使用できます。 たとえば、入力文字列の場合- AReallyLongVariableNameInJava 出力を取得する必要があります- A Really Long Variable Name In Java 「[A-Z]」正規表現を使用してすべての大文字を検索し、それらをスペースとその文字に再度置き換えることができます。次のようにreパッケ