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 "
-
文字列に偶数の長さの単語を出力するPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を指定すると、文字列内のすべての単語を均等な長さで表示する必要があります。 アプローチ split()関数を使用して入力文字列を分割します。 forを使用して文字列の単語を繰り返し処理します ループ& len()を使用して単語の長さを計算します 機能。 長さが均等であると評価されると、単語が画面に表示されます。 それ以外の場合、画面に単語は表示されません。 次に、以下の実装を見てみましょう- 例 def printWords(s): # split
-
大文字で始まる単語の間にスペースを入れるPythonの正規表現
ここで解決しようとしている問題は、CamelCaseを単語を区切るように変換することです。正規表現を使用してこれを直接解決するには、指定された文字列内の大文字のすべての出現箇所を検索し、その前にスペースを置きます。 reモジュールからsubメソッドを使用できます。 たとえば、入力文字列の場合- AReallyLongVariableNameInJava 出力を取得する必要があります- A Really Long Variable Name In Java 「[A-Z]」正規表現を使用してすべての大文字を検索し、それらをスペースとその文字に再度置き換えることができます。次のようにreパッケ