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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM