def _solve(ss): """处理问题逻辑""" s = list(ss) n = len(s) q,r = divmod(n,2) #需要判断奇数还是偶数 #1.奇数位不可能是双生数,要变成11,1100,110011的情况 if r: return "".join( [ "00" if i%2 else "11" for i in range(q+1) ]) #2.偶数位的处理 else: i=0 flag=False while i<n: if s[i]!=s[i+1]: if s[i]>s[i+1]: s[i+1]=s[i] else: s[i]=s[i+1]=f"{int(s[i])+1}" if i<2 or s[i]!=s[i-1]: break if i>1 and s[i]==s[i-1]: t = int(s[i]) if t<9: s[i]=s[i+1]=str(t+1) else: flag = True #flag表示是否有两个连续的99区间,要单独进行处理 while(i>=0 and s[i]=='9' or i>0 and s[i]>'7' and s[i-1]>'8'): i-=2 break i+=2 s[i+2:] = [ "11" if i%2 else "00" for i in range(n-i-2>>1) ] if flag: ti = int(s[i]) if i<0: s=["11"]+s elif i>0: tmp = set('123456789')-set(map(str,range(ti)))-set(s[i-1])-set(s[i]) s[i]=s[i+1] = min(tmp) else: s[i]=s[i+1] = str(ti+1) return "".join(s) def solve(s): """调用处理逻辑func,输出返回结果""" res = _solve(s) print(res) # INPUTS="1233" INPUTS=input() solve(INPUTS)