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

Pythonで単語を垂直に印刷する


文字列sがあるとします。すべての単語を、sに表示されるのと同じ順序で垂直方向に検索する必要があります。ここでは、単語が文字列のリストとして返されます。必要に応じてスペースを入力する必要があります。 (トレーリングスペースは許可されていません)。各単語は1つの列にのみ配置され、1つの列には1つの単語のみが配置されます。したがって、入力文字列が「HOW ARE YOU」の場合、出力は["HAY"、 "ORO"、 "WEU"]

になります。

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

  • s:=スペースで分割された文字列のリストを作成し、1つの空の配列xを作成し、行を0に設定します

  • sの各単語Iについて、行を設定します:=行の最大値とiの長さ

  • col:=sの長さ

  • 1つの配列を作成し、空の文字列で埋めます。そのサイズは行です

  • 0からcol–1の範囲のIの場合

    • j:=0

    • 一方、jの長さ

      • i – ans [j]> =1の長さである間、ans [j]:=ans[j]は「」を連結します

      • ans [j]:=ans[j]連結s[i、j]

      • jを1増やします

  • ansを返す

例(Python)

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

class Solution(object):
   def printVertically(self, s):
      s = s.split(" ")
      x = []
      row = 0
      for i in s:
         row = max(row, len(i))
      col = len(s)
      ans = ["" for i in range(row)]
      j = 0
      for i in range(col):
         j = 0
         while j < len(s[i]):
            #print(j, i)
            while i - len(ans[j]) >= 1:
               ans[j] += " "
            ans[j] += s[i][j]
            j += 1
      return ans
ob = Solution()
print(ob.printVertically("HOW ARE YOU"))
print(ob.printVertically("TO BE OR NOT TO BE"))

入力

"HOW ARE YOU"
"TO BE OR NOT TO BE"

出力

["HAY","ORO","WEU"]
["TBONTB","OEROOE"," T"]

  1. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

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

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