题目简述:
给你一个整数
n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。
题目链接:1556. 千位分隔数
不清楚为什么那么多人说这个题面试考到了,而且还有人说自己面试时被提示了思路还是没做出来。
难道是因为 Java 的 StringBuilder 太好用了?我感觉 Java 这不可变 String 挺恶心的啊,用别的语言只会更容易吧?
不理解这有什么难度,就每次取低位然后更新数字(整除 10,即从右至左取数字),然后将低位数字放入构建字符串中(从左至右构建字符串),并且每处理三位就插一个 '.',最后检查一下是否以非法的 '.' 结尾然后再反转字符串不就好了吗?
class Solution {
public String thousandSeparator(int n) {
if (n == 0) return "0";
StringBuilder sb = new StringBuilder();
int counter = 0;
while (n > 0) {
int digit = n % 10;
n /= 10;
sb.append(digit);
counter++;
if (counter % 3 == 0) sb.append('.');
}
if (sb.charAt(sb.length() - 1) == '.') sb.setLength(sb.length() - 1);
return sb.reverse().toString();
}
}