题解 | #提取不重复的整数#

提取不重复的整数

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)
}
全部评论

相关推荐

10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:其实简历是不需要事无巨细的写的,让对方知道你有这段经历就行了,最重要的是面试的时候讲细讲明白
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务