为了帮助小M实现这个任务,我们可以编写一个函数,该函数将输入的字符串转换为带千分位逗号的格式,并且去除前面的无用0。以下是实现该功能的Python代码:
def solution(s: str) -> str:
# 去除前面的无用0
s = s.lstrip('0')
# 如果字符串为空,说明输入全为0,返回'0'
if s == '':
return '0'
# 分离整数部分和小数部分
if '.' in s:
integer_part, decimal_part = s.split('.')
else:
integer_part, decimal_part = s, ''
# 将整数部分转换为带千分位逗号的格式
integer_part_with_commas = "{:,}".format(int(integer_part))
# 如果小数部分存在,将其拼接在整数部分后面
if decimal_part:
return f"{integer_part_with_commas}.{decimal_part}"
else:
return integer_part_with_commas
if __name__ == '__main__':
print(solution("1294512.12412") == '1,294,512.12412')
print(solution("0000123456789.99") == '123,456,789.99')
print(solution("987654321") == '987,654,321')
代码解释:
-
去除前面的无用0:
- 使用
s.lstrip('0')去除字符串前面的无用0。如果字符串全为0,去除后会变成空字符串,因此在下一步中需要处理这种情况。
- 使用
-
处理全为0的情况:
- 如果去除无用0后字符串为空,说明输入全为0,直接返回
'0'。
- 如果去除无用0后字符串为空,说明输入全为0,直接返回
-
分离整数部分和小数部分:
- 使用
split('.')方法将字符串分为整数部分和小数部分。如果没有小数部分,则小数部分为空字符串。
- 使用
-
格式化整数部分:
- 使用
"{:,}".format(int(integer_part))将整数部分转换为带千分位逗号的格式。
- 使用
-
拼接整数部分和小数部分:
- 如果存在小数部分,将其拼接在整数部分后面,否则直接返回整数部分。
测试结果:
- 该代码通过了给定的测试样例,输出结果与预期一致。