Description
Given an integer n
, add a dot (".") as the thousands separator and return it in string format.
Example 1:
Input: n = 987
Output: "987"
Example 2:
Input: n = 1234
Output: "1.234"
Constraints:
Solutions
Solution 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | class Solution:
def thousandSeparator(self, n: int) -> str:
cnt = 0
ans = []
while 1:
n, v = divmod(n, 10)
ans.append(str(v))
cnt += 1
if n == 0:
break
if cnt == 3:
ans.append('.')
cnt = 0
return ''.join(ans[::-1])
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | class Solution {
public String thousandSeparator(int n) {
int cnt = 0;
StringBuilder ans = new StringBuilder();
while (true) {
int v = n % 10;
n /= 10;
ans.append(v);
++cnt;
if (n == 0) {
break;
}
if (cnt == 3) {
ans.append('.');
cnt = 0;
}
}
return ans.reverse().toString();
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | class Solution {
public:
string thousandSeparator(int n) {
int cnt = 0;
string ans;
while (1) {
int v = n % 10;
n /= 10;
ans += to_string(v);
if (n == 0) break;
if (++cnt == 3) {
ans += '.';
cnt = 0;
}
}
reverse(ans.begin(), ans.end());
return ans;
}
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 | func thousandSeparator(n int) string {
cnt := 0
ans := []byte{}
for {
v := n % 10
n /= 10
ans = append(ans, byte('0'+v))
if n == 0 {
break
}
cnt++
if cnt == 3 {
ans = append(ans, '.')
cnt = 0
}
}
for i, j := 0, len(ans)-1; i < j; i, j = i+1, j-1 {
ans[i], ans[j] = ans[j], ans[i]
}
return string(ans)
}
|