zoukankan      html  css  js  c++  java
  • 字母数字密码破解

    #encoding:utf-8
    #a--1  b---2   26--z
    #给定已有的数字密码,求所有可能的原来的字母
    final=[]
    def translate(arr,begin,end):
        i=begin
        if begin>end:
            result=''
            for j in arr:
                if j!='#':
                    result+=j
            final.append(result)
        else:
            if not(i<end and arr[i+1]=='0'):
                arr[i] = chr(ord(arr[i]) + 48)
                translate(arr,begin+1,end)
                arr[i]=chr(ord(arr[i])-48)
            if i<end:
                num=arr[i]+arr[i+1]
                num=int(num)
                if num<=26 and (not(i+2<=end and arr[i+2]=='0')):
                    x,y=arr[i],arr[i+1]
                    arr[i]=chr(96+num)
                    arr[i+1]='#'
                    translate(arr,begin+2,end)
                    arr[i],arr[i+1]=x,y
    
    while 1:
        arr=raw_input()
        if arr=='':
            break
        arr=list(arr)
        translate(arr,0,len(arr)-1)
        for n in range(len(final)-1):
            print final[n],
        print final[-1]
        final=[]

    123

    abc aw lc

  • 相关阅读:
    事务与锁的一些总结
    NYOJ 73
    NYOJ 456
    Sleep函数
    NYOJ 488(素数环)
    NYOJ 308
    NYOJ 27
    NYOJ 325
    NYOJ 138
    求两个或N个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法
  • 原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/7545337.html
Copyright © 2011-2022 走看看