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