题解 | #提取不重复的整数#
提取不重复的整数
https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
package main
import (
"fmt"
)
func removeDuplicates(n int) int {
digits := make([]bool, 10)
result := 0
for n > 0 {
digit := n % 10
n /= 10
if !digits[digit] {
result = result*10 + digit
digits[digit] = true
}
}
return result
}
func main() {
var n int
fmt.Scan(&n)
newNumber := removeDuplicates(n)
fmt.Println(newNumber)
}
在上面的代码中,removeDuplicates 函数接受一个整数作为输入,并按照从右向左的顺序遍历该整数的每一位数字。使用一个布尔数组 digits 来记录已经出现过的数字,如果当前数字尚未出现过,则将其添加到结果中。最后返回结果即可。
在 main 函数中,我们从标准输入读取一个整数,并调用 removeDuplicates 函数来获取新的不含重复数字的整数,并将结果打印输出。
package main
import (
"fmt"
)
func main() {
var n int
fmt.Scan(&n)
digits := make([]int, 0)
seen := make(map[int]bool)
for n > 0 {
digit := n % 10
if !seen[digit] {
digits = append(digits, digit)
seen[digit] = true
}
n /= 10
}
newNum := 0
for i := 0 ; i <= len(digits)-1;i++ {
newNum = newNum*10 + digits[i]
}
fmt.Println(newNum)
}

