Next Unique-digit Integer | tech::interview
有一种integer序列满足以下条件
如果不存在这样的下一个数,则返回0
For example:
Given
Next integer should be
Given
Next integer should be
Given
Just return 0
有一种integer序列满足以下条件
- 非负
- 不能有重复的digit,比如11是不合法的
- 递增,既后面产生的比前面产生的要大,比如10的下一个数字是12
显然,这组数字的范围为[0, 9876543210]
如果不存在这样的下一个数,则返回0
For example:
Given
789
Next integer should be
790
Given
98
Next integer should be
102
Given
9876543210
Just return 0
Read full article from Next Unique-digit Integer | tech::interviewint64_t get_next_number(uint64_t n) {if(n >= 9876543210) return 0;auto check_valid = [](uint64_t num) {bool used[10] = {false};while(num) {if(used[num % 10]) return false;used[num % 10] = true;num /= 10;}return true;};while(!check_valid(++n));return n;}