1. 问题描述:
给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。
示例 1:
输入:n = 987
输出:"987"
示例 2:
输入:n = 1234
输出:"1.234"
示例 3:
输入:n = 123456789
输出:"123.456.789"
示例 4:
输入:n = 0
输出:"0"
提示:
0 <= n < 2^31
2. 思路分析:
对于这种题目模拟其中的过程即可,一开始想到的是对数字n进行拆分,得到数字n各个位上的数字并且使用列表将其存储起来,然后倒序遍历列表每三位添加一个"."
3. 代码如下:
class Solution:
def thousandSeparator(self, n: int) -> str:
if n == 0: return str(0)
num_bit = list()
while n > 0:
num_bit.insert(0, str(n % 10))
n //= 10
if len(num_bit) <= 3: return "".join(num_bit)
i, res = len(num_bit), ""
while i >= 0:
res = "." + "".join(num_bit[i - 3:i]) + res
i -= 3
if i - 3 <= 0:
res = "".join(num_bit[0: i]) + res
break
return res
官网代码(比较简洁):
他是直接取出n从末尾到开始的各个位上的数字然后每三位添加一个"."到列表中,最后反向截取列表中的元素
class Solution:
def thousandSeparator(self, n: int) -> str:
count = 0
ans = list()
while True:
cur = n % 10
n //= 10
ans.append(str(cur))
count += 1
if count % 3 == 0 and n > 0:
ans.append(".")
if n == 0:
break
return "".join(ans[::-1])