最小不重复数(百度笔试题)
2013-10-02 16:05
225 查看
n为正整数,求比这个数大且最小的不重复数,重复数为相邻两位数字相同,如1101为重复数,1231为不重复数。
#include <stdio.h> #include <string.h> void find(char s[]) { int length = strlen(s); for(int i=0;i<length;i++) { if(s[i]==s[i+1] && s[i]=='9') { if(i==0) { for(int j=length+1;j>0;j--) s[j]=s[j-1]; s[0]='0'; i=1; } s[i-1]+=1; s[i]='0'; s[i+1]='0'; find(s); return ; } else if(s[i]==s[i+1]) { s[i+1]+=1; for(int j=i+2;j<length;j++) { if((j-i)%2==0) s[j]='0'; else s[j]='1'; } return ; } } if(s[length-1]=='9') { s[length-2]+=1; s[length-1]='0'; } else s[length-1]+=1; if(s[length-1]==s[length-2] || s[length-2]==s[length-3]) find(s); } int main() { char num[1000]; while(~scanf("%s",num)) { find(num); printf("%s\n",num); } }
相关文章推荐
- (百度笔试题)给定任意一个正整数,求比这个数大且最小的“不重复数”。
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”(性能优化)[2014百度笔试题]
- [经典面试题][百度]求比指定数大且最小的“不重复数”
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”(性能优化)[2014百度笔试题]
- 百度笔试题:找最小的不重复数
- 2014百度研发真题及其解析-求比指定数大且最小的“不重复数”
- 面试题精选(74):n个数连接得到最小或最大的多位整数(百度笔试题)
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”[2014百度笔试题]
- 百度笔试题:找最小的不重复数
- 【有趣的面试算法题】之四 求最小不重复数,源于百度2014届校园招聘软件研发岗位深圳站
- 求最小不重复数,源于百度2014届校园招聘软件研发岗位深圳站
- 百度14年笔试 - 找出大于某值的最小的不重复数
- 实现返回大于A的最小“不重复数” 百度2014校招笔试题
- 2014百度面试题目---“求比指定整数大且最小的不重复数”解答
- 百度笔试:求大于n的最小的不重复数,不重复数是指相邻两个数不相同
- 百度笔试题----最小不重复数
- 给出任意一个正整数,算出大于它的最小不重复数——最高效[2014百度笔试题]
- 百度2014校招-深圳-开发测试-求最小“不重复数”
- 百度面试题 求比N大的最小“不重复数”
- DLX (重复覆盖+费用不为1的最小费用)fzu Problem 2165 v11