• Python凯撒密码和括号匹配


    1.凯撒密码

    除了特殊字符不转化,其余的按照规定经行转译,以下以a~z和A~Z的字符都进行转译。

    plaincode = input("")
    print(len(plaincode))
    for i in range(0,len(plaincode)):
      if ord("a")<=ord(plaincode[i])<=ord("z"):
        print(chr(ord("a")+(ord(plaincode[i])-ord("a")+3)%26),end='')//a~z
      elif ord("A")<=ord(plaincode[i])<=ord("Z"):
        print(chr(ord("A")+(ord(plaincode[i])-ord("A")+3)%26),end='')//A~Z
      else:
        print(plaincode[i],end='')

    2.括号匹配

    算法思想:说到括号匹配问题,一般会想到用栈来实现,现在我用的是对字符串的处理的办法来实现对括号的匹配,

    处理的方式相似于栈,但是使用的是列表和字符串的切割及长度计算,来实现该算法。具体过程已经在代码中详细解释。

    flag=0
    tem = input('')

    //用两个空串接收左右括号
    str = ''
    str1 = ''

    //用于计算左右括号的数量
    count = 0
    count1=0
    for i in range(len(tem)):

    #如果为左括号,则将其存入第一个字符串中
      if(tem[i]=='('):
        str = str+tem[i]
        count = count+1
      if(tem[i]==')'):

    #如果为右括号,则计数加一,此外,判断在此之前是否存在左括号与之匹配

        count1 = count1+1
        if(len(str)==0):#不存在左括号,则不匹配
          flag=0
        else:#存在左括号,在存放左括号的字符串中删除一个左括号
          str1 = str1+')'
          str = str[:-1]

      if(len(str)==0):#匹配完成后,若左括号字符串为空,则匹配成功
        flag=1
    if(flag==1 and count==count1):
    print("匹配成功")
    else:
    print("匹配不成功")

  • 相关阅读:
    centos6.5下redis的安装与配置
    (函数分治法)实现pow函数(x的y次方幂)
    (数组)大数相乘,相加
    (树)根据排序数组或者排序链表重新构建BST树
    (合并 重叠数组)练习容器的用法
    (动态规划)最小分糖果问题
    (链表)链表的排序问题
    (链表)链表和加法的混合
    (函数)实现strstr函数
    (字符串动态规划)一个字符串变成另一个字符串的步骤数
  • 原文地址:https://www.cnblogs.com/chenting123456789/p/11604753.html
Copyright © 2020-2023  润新知