LeetCode1556 千位分隔數

2021-10-09 10:26:01 字數 1401 閱讀 6098

一. 題目

題目給你乙個整數 n,請你每隔三位新增點(即 「.」 符號)作為千位分隔符,並將結果以字串格式返回。

示例

二. 方法一: 反轉字串

解題思路

先將字串反轉, 然後每隔3個數字新增乙個"."

再將最終的字串反轉回來, 並刪掉最後多餘的"."即可

之所以最開始要反轉字串, 是因為反轉後就不用考慮最前面是否滿足3位的情況

解題**

def

thousandseparator

(self, n:

int)

->

str:

num =

str(n)[:

:-1]

res =

""for i in

range(0

,len

(num),3

):res += num[i: i +3]

+"."

return res[::

-1][1:]

分析

時間複雜度: o(n^2)

空間複雜度: o(n)

三. 方法二

解題思路

將字串每隔三位進行儲存在列表中

然後將最右側的元素(數值最左邊的)直接新增到res中, 並加上"."

其他元素同步驟2, 但是要對其左側進行填充為3位的元素

然後去掉最後多餘的".",即可

如果不進行填充: 「51040」 會轉成51.40, 而應該轉為51.040

解題**

def

thousandseparator

(self, n:

int)

->

str:

arr =

res =

""if n ==0:

return

"0"while n >0:

str(n %

1000))

n //=

1000

# 最左側不需要進行填充為3位

res += arr[

len(arr)-1

]+"."for i in

range

(len

(arr)-2

,-1,

-1):

zfill: 左側用0填充到指定的位數

res += arr[i]

.zfill(3)

+"."

return res[:-

1]

分析

時間複雜度: o(n)

空間複雜度: o(n)

轉換千分位

string str decimalformat.getnumberinstance format su string currecy numberformat.getcurrencyinstance format su system.out.println 轉換成currency格式 su sys...

千分位分割

格式化數字 67235943 為貨幣金額顯示方式 67,235,943要怎麼做,這是暫時不考慮有小數的形式 採用正則替換,呼叫字串replace方法 67235943 replace d d g,1,如果有小數部分,如 67235943.4687 此時如果只格式化整數部分,採用上面的正則,不過要稍微...

JS實現千分位

function format num d g return num replace reg,解釋 1 正規表示式 d d 表示前面有1 3個數字,後面的至少由一組3個數字結尾 2 表示正向引用,可以作為匹配的條件,但匹配到的內容不獲取,並且作為下一次查詢的開始 3 表示與正規表示式相匹配的內容,具...