Leetcode Note: Go - Self Dividing Numbers

Self Dividing Numbers - LeetCode
https://leetcode.com/problems/self-dividing-numbers/

  • Go 言語で取り組んだメモ

所感

  • int 数値 left, right が渡されるので、その範囲で自身で割り切れる整数を int 配列で return する

回答

Self Dividing Numbers - LeetCode
https://leetcode.com/problems/self-dividing-numbers/solution/

Golang-solution 0 ms, 2 MB - LeetCode Discuss
https://leetcode.com/problems/self-dividing-numbers/discuss/1144181/Golang-solution-0-ms-2-MB

func selfDividingNumbers(left int, right int) []int {
	result := []int{}
	for n := left; n <= right; n++ {
		if isSelfDiveded(n) {
			result = append(result, n)
		}
	}
	return result
}

func isSelfDiveded(n int) bool {
	for i := n; i > 0; i /= 10 {
		x := i % 10
		if x == 0 || n%x != 0 {
			return false
		}
	}
	return true
}
  • left, right の範囲をループ
    • 各数値が自身で割り切れる数かチェック
      • ここのロジックがやや複雑
    • 有効であれば、その数値をスライスに追加する