Back to Leetcode Go

1317. Convert Integer to the Sum of Two No-Zero Integers

website/content.en/ChapterFour/1300~1399/1317.Convert-Integer-to-the-Sum-of-Two-No-Zero-Integers.md

1.7.972.0 KB
Original Source

1317. Convert Integer to the Sum of Two No-Zero Integers

Problem

Given an integer n. No-Zero integer is a positive integer which doesn't contain any 0 in its decimal representation.

Return a list of two integers [A, B] where:

  • A and B are No-Zero integers.
  • A + B = n

It's guarateed that there is at least one valid solution. If there are many valid solutions you can return any of them.

Example 1:

Input: n = 2
Output: [1,1]
Explanation: A = 1, B = 1. A + B = n and both A and B don't contain any 0 in their decimal representation.

Example 2:

Input: n = 11
Output: [2,9]

Example 3:

Input: n = 10000
Output: [1,9999]

Example 4:

Input: n = 69
Output: [1,68]

Example 5:

Input: n = 1010
Output: [11,999]

Constraints:

  • 2 <= n <= 10^4

Problem Summary

A "No-Zero integer" is a positive integer whose decimal representation does not contain any 0. Given an integer n, return a list of two integers [A, B] such that:

  • A and B are both No-Zero integers
  • A + B = n

The problem data guarantees that there is at least one valid solution. If there are multiple valid solutions, you may return any one of them.

Solution Approach

  • Given an integer n, split it into 2 positive integers whose decimal digits do not contain 0 and whose sum is n.
  • Easy problem. Search in the interval [1, n/2], and break as soon as a pair satisfying the condition is found. The problem guarantees at least one solution, and if there are multiple solutions, returning any one is acceptable.

Code

go

package leetcode

func getNoZeroIntegers(n int) []int {
	noZeroPair := []int{}
	for i := 1; i <= n/2; i++ {
		if isNoZero(i) && isNoZero(n-i) {
			noZeroPair = append(noZeroPair, []int{i, n - i}...)
			break
		}
	}
	return noZeroPair
}

func isNoZero(n int) bool {
	for n != 0 {
		if n%10 == 0 {
			return false
		}
		n /= 10
	}
	return true
}