小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。 现在小红拿到了一个正整数 ,她希望你求出不小于 的最小“双生数”。

区块链毕设网qklbishe.com为您提供问题的解答

小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。    现在小红拿到了一个正整数 ,她希望你求出不小于  的最小“双生数”。小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。
小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。    现在小红拿到了一个正整数 ,她希望你求出不小于  的最小“双生数”。现在小红拿到了一个正整数 小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。    现在小红拿到了一个正整数 ,她希望你求出不小于  的最小“双生数”。,她希望你求出不小于 小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。    现在小红拿到了一个正整数 ,她希望你求出不小于  的最小“双生数”。 的最小“双生数”。

#简洁明了
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 #998899889999
                    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)

16:56

以上就是关于问题小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。
现在小红拿到了一个正整数 ,她希望你求出不小于 的最小“双生数”。的答案

欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 小红定义一个正整数是“双生数”,当且仅当该正整数的每个数位的相邻数位中,恰好有一个和该数位的数字相同。 现在小红拿到了一个正整数 ,她希望你求出不小于 的最小“双生数”。