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("匹配不成功")

posted @ 2019-09-28 20:38  小高冷  阅读(941)  评论(8编辑  收藏  举报