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

Pythonの整数から英語の単語


番号があるとします。数字は0から231–1までの任意の数字にすることができます。数字を単語に変換する必要があります。したがって、数値が512のような場合、結果は512になります。

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

  • less_than_20のようないくつかのリストを定義します。これは、1から19までのすべての単語を保持します

  • 10のような別の配列は、10、20、30などを最大90まで保持します

  • 数千、数百万、数十億を保持するための数千の別の配列

  • helper()という1つの関数を定義します。これには、n

    かかります。
  • nが0の場合、空白の文字列を返します

  • それ以外の場合、n <20の場合、less_than_20[n]+空白スペースを返します

  • それ以外の場合、n <100の場合、数十[n / 10] +空白スペース+ヘルパー(n mod 10)

    を返します。
  • それ以外の場合は、less_than_20 [n / 100] +“ Hundred” + helper(n mod 100)

    を返します。
  • メインの方法から、次のようにします

  • numが0の場合、「ゼロ」を返します

  • ans:=空の文字列、i:=0

  • num> 0

    • num mod 1000が0でない場合、

      • ans:=helper(num mod 1000)+ 1000[i]+空白スペース+ans

      • num:=num / 1000

  • ansを返す

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

class Solution(object):
   less_than_20 = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen",
"Nineteen"]
   tens = ["","Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
   thousands = ["", "Thousand", "Million", "Billion"]
   def numberToWords(self, num):
      if num == 0:
         return "Zero"
      ans = ""
      i = 0
      while num > 0:
         if num % 1000 != 0:
            ans = self.helper(num % 1000) + Solution.thousands[i] + " " + ans
         i += 1
         num //= 1000
      return ans.strip()
   def helper(self, n):
      if n == 0:
         return ""
      elif n < 20:
         return Solution.less_than_20[n] + " "
      elif n < 100:
         return Solution.tens[n//10] + " " + self.helper(n % 10)
      else:
         return Solution.less_than_20[n // 100] + " Hundred " + self.helper(n % 100)

ob = Solution()
print(ob.numberToWords(512))
print(ob.numberToWords(7835271))

入力

512
7835271

出力

Five Hundred Twelve
Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One

  1. Pythonで特定の文字列の単語を逆にする

    文字列が与えられ、文字列に存在するすべての単語を逆にすることが目標です。分割法と逆関数を使用して出力を実現できます。いくつかのサンプルテストケースを見てみましょう。 Input: string = "I am a python programmer" Output: programmer python a am I Input: string = "tutorialspoint is a educational website" Output: website educational a is tutorialspoint 以下の手順に従って、目

  2. Pythonのbin()

    bin()関数は、10進数を2進数に変換します。変換するパラメータとして正または負の整数を使用できます。 構文 以下は関数の構文です。 bin(n) Parameters : an integer to convert Return Value : A binary string of an integer or int object. Exceptions : Raises TypeError when a float value is sent as argument. 次の例では、正と負の整数を2進数に変換します。結果には接頭辞0bが付いており、数値が2進表現であることを示しています