Leetcode 273 整數轉換英文表示

2021-10-07 01:30:37 字數 4284 閱讀 8253

將數字分成三個數字一小組的list

p.s.

**還需要改進;

以後的**都會寫備註;

以下是python 的源**:

import numpy

import math

class

solution

(object):

defnumbertowords

(self, num)

:"""

將整個數字分成三個一小組的list

:type num: int

:rtype: str

"""num0=num ##用來求每個小組中的元素,消耗元素

num1=num ##用來求一組數可以組成幾個三位小組,消耗元素

trib_num=

0##小組數

for i in

range(4

):##判斷有幾個小組

if num1>0:

trib_num+=

1 num1=

int(num1/

1000

)

trible=

##小組內的具體元素

num_str=

##最後輸出的字串

if num==0:

num_str=

'zero'

else

:for i in

range

(trib_num)

:##小組內的具體元素

1000

) num0=

int(num0/

1000

)for i in

range

(trib_num)

:##小組內迴圈

x=trible[trib_num-

1-i]

hund_num=

int(x/

100)

##百位

decm_num=

int(x%

100/10)

##十位

sing_num=x%

10##個位

## 此位是否都為零

if hund_num==

0and decm_num==

0and sing_num==0:

pass

## 不為零

else

:## 百位有數字輸出

if hund_num>0:

y=sing(hund_num)

' ')

'hundred'

)## 如果百位後有元素的話需要加上空格

if decm_num>

0or sing_num>

0or i' ')

## 十位有大於1數字輸出

if decm_num>1:

y=decm(decm_num)

## 有個位的話需要加上空格和個位

if sing_num>0:

' ')

y=sing(sing_num)

## 如果個位後還有元素的話需要加空格

if i' ')

## 如果十位的元素為1

elif decm_num==1:

y=tens(sing_num)

## 如果十位後還有元素

if i' ')

## 只有乙個個位

elif sing_num>0:

y=sing(sing_num)

##如果個位後還有元素

if i' ')

## 對小組的位進行定位

y=thou(trib_num-

1-i)

## 如果小組後面還有元素則加空格

x=pow(

1000

,(trib_num-

1-i))if

(num%x)

>0:

' ')

## 拼接字串

str0=

'' str0=str0.join(num_str)

## return 2000%1000

return str0

defthou

(thou_num)

: thou_str=

''if thou_num==0:

thou_str=

''if thou_num==1:

thou_str=

'thousand'

if thou_num==2:

thou_str=

'million'

if thou_num==3:

thou_str=

'billion'

return thou_str

defdecm

(decm_num)

: decm_str=

''if decm_num==2:

decm_str=

'twenty'

elif decm_num==3:

decm_str=

'thirty'

elif decm_num==4:

decm_str=

'forty'

elif decm_num==5:

decm_str=

'fifty'

elif decm_num==6:

decm_str=

'sixty'

elif decm_num==7:

decm_str=

'seventy'

elif decm_num==8:

decm_str=

'eighty'

elif decm_num==9:

decm_str=

'ninety'

return decm_str

deftens

(tens_num)

: tens_str=

''if tens_num==0:

tens_str=

'ten'

if tens_num==1:

tens_str=

'eleven'

if tens_num==2:

tens_str=

'twelve'

if tens_num==3:

tens_str=

'thirteen'

if tens_num==4:

tens_str=

'fourteen'

if tens_num==5:

tens_str=

'fifteen'

if tens_num==6:

tens_str=

'sixteen'

if tens_num==7:

tens_str=

'seventeen'

if tens_num==8:

tens_str=

'eighteen'

if tens_num==9:

tens_str=

'nineteen'

return tens_str

defsing

(sing_num)

: sing_str=

''if sing_num==1:

sing_str=

'one'

if sing_num==2:

sing_str=

'two'

if sing_num==3:

sing_str=

'three'

if sing_num==4:

sing_str=

'four'

if sing_num==5:

sing_str=

'five'

if sing_num==6:

sing_str=

'six'

if sing_num==7:

sing_str=

'seven'

if sing_num==8:

sing_str=

'eight'

if sing_num==9:

sing_str=

'nine'

return sing_str

num =

1000010

output=solution(

).numbertowords(num)

print

(output)

leetcode字串轉換整數

請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組...

LeetCode 字串轉換整數

題目描述 請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連...

leetcode 字串轉換整數 atoi

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...