OneDigitDifference
Member SRM 491 · 2010-03-12 · by Mimino
Member SRM 491 · 2010-03-12 · by Mimino · Simple Math
Problem Statement
Problem Statement
We say that two integer numbers differ from each other by one digit, when in their decimal notation, possibly with leading zeros, they will differ in exactly one position. For example numbers 128 and 28 differ by one digit:
128
028But numbers 2047 and 40 differ by two digits:
2047
0040Given the number N, find and return the smallest possible non-negative number M, such that number N and M differ from each other by exactly one digit.
Constraints
- N will be between 0 and 2,000,000,000, inclusive.
Examples
0)
0 Returns: 1
1)
1 Returns: 0
2)
2 Returns: 0
3)
3 Returns: 0
4)
4 Returns: 0
155)
9 Returns: 0
0 is the smallest non-negative number and differs by only one digit.
156)
0 Returns: 1
The result number is not always smaller than N.
157)
900000123 Returns: 123
Leading zeros in the result are okay: 900000123 000000123
158)
30000 Returns: 0
Leading zeros are okay also with 0 as a result: 30000 00000
Submissions are judged against all 173 archived test cases, of which 9 are shown here. Case numbers match the judge’s.
Coding Area
Language: C++17 · define a public class OneDigitDifference with a public method int getSmallest(int N) · 173 test cases · 2 s / 256 MB per case