LeetCode 「简单」1556.千位分隔数

sankigan2025-3-7算法LeetCode

千位分隔数open in new window

题目描述

给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。

示例

输入:n = 987
输出:"987"

输入:n = 1234
输出:"1.234"

输入:n = 123456789
输出:"123.456.789"

输入:n = 0
输出:"0"

解答

toLocaleString

注意:toLocaleString 会自动进行四舍五入

Code
/**
 * @param {number} n
 * @return {string}
 */
var thousandSeparator = function(n) {
  return n.toLocaleString().replaceAll(',', '.');
};

模拟

Code
/**
 * @param {number} n
 * @return {string}
 */
var thousandSeparator = function(n) {
  const str = n.toString();
  let result = '';
  let count = 0;

  // 从右向左遍历字符串
  for (let i = str.length - 1; i >= 0; --i) {
    ++count;
    result = str[i] + result;
    // 每三位添加一个.
    if (count % 3 === 0 && i !== 0) {
      result = '.' + result;
    }
  }

  return result;
};

正则表达式

Code
/**
 * @param {number} n
 * @return {string}
 */
var thousandSeparator = function(n) {
  return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
};
更新于 2025/3/25 19:31:07