mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-04 16:12:47 +08:00
38 lines
643 B
Go
38 lines
643 B
Go
package leetcode
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
func reformatNumber(number string) string {
|
|
parts, nums := []string{}, []rune{}
|
|
for _, r := range number {
|
|
if r != '-' && r != ' ' {
|
|
nums = append(nums, r)
|
|
}
|
|
}
|
|
threeDigits, twoDigits := len(nums)/3, 0
|
|
switch len(nums) % 3 {
|
|
case 1:
|
|
threeDigits--
|
|
twoDigits = 2
|
|
case 2:
|
|
twoDigits = 1
|
|
default:
|
|
twoDigits = 0
|
|
}
|
|
for i := 0; i < threeDigits; i++ {
|
|
s := ""
|
|
s += string(nums[0:3])
|
|
nums = nums[3:]
|
|
parts = append(parts, s)
|
|
}
|
|
for i := 0; i < twoDigits; i++ {
|
|
s := ""
|
|
s += string(nums[0:2])
|
|
nums = nums[2:]
|
|
parts = append(parts, s)
|
|
}
|
|
return strings.Join(parts, "-")
|
|
}
|