2017-03-16 59 views

回答

0

「您好,ALL..This程序可以幫助您將數字字符串變成最大的迴文,並帶有'k'個變化!

!在/ usr/bin中/ Python的

def max(a,b): 

if a >b : 
    return a 
else: 
    return b 


def palindrome(str,k1): 

    l=0 
    r=len(str)-1 
    pl=str 
    k=int(k1) 
    while (l < r): 
    if str[l] != str[r] : 
      pl[l]=pl[r]=max(str[l],str[r]) 
      l+=1 
      r-=1 

    if k<= 0: 
     return "can not able to make palin " 

    l=0 
    r=len(str)-1 

    while l<= r: 
    if l == r: 
     if k>0: 
      pl[l]='9' 


    if pl[l] < '9': 
     if k>=2 and str[l]==pl[l] and str[r]==pl[r]: 
      k-=2 
      pl[l]=pl[r]='9' 

     elif k>=1 and (str[l]!=pl[l] or str[r]!=pl[r]): 
      k-=1 
      pl[l]=pl[r]='9' 

    l+=1 
    r-=1 


return pl 

print "Your output "+ str("".join(palindrome(list("45611"),1))) 

我用列表,而不是字符串,這樣我們就可以操作使用索引並加入排行榜,以便讓出作爲字符串

「」。加入(迴文(列表(「45611」),1))

相關問題