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

Python凯撒密码和括号匹配的更多相关文章

  1. Python凯撒密码加解密

    #凯撒密码第一个版本 #加密 pxpt=input("请输入明文文本:") for p in pxpt: if 'a'<=p<='z': print(chr(ord(' ...

  2. 凯撒密码移位python

    #!/usr/bin/python'''凯撒密码'''a="gmbhqwertghjkcvbzn"s=[""]*len(a)for j in range(26) ...

  3. Python的一个解释凯撒密码的程序

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detai ...

  4. Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作

    # -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...

  5. python恺撒密码 与 字符串反码 【chr()与ord()函数的两种不同应用】

    恺撒密码  描述 恺撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:‪‬‪‬‪‬‪ ...

  6. 凯撒密码 CH Round #57 - Story of the OI Class

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ...

  7. java:凯撒密码及String的应用

    一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ...

  8. 凯撒密码加密解密--JAVA实现(基础)

    凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...

  9. FCC JS基础算法题(13):Caesars Cipher(凯撒密码)

    题目描述: 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A ...

随机推荐

  1. LeetCode 201. 数字范围按位与(Bitwise AND of Numbers Range)

    201. 数字范围按位与 201. Bitwise AND of Numbers Range 题目描述 给定范围 [m, n],其中 0 <= m <= n <= 214748364 ...

  2. LeetCode 946. 验证栈序列(Validate Stack Sequences) 26

    946. 验证栈序列 946. Validate Stack Sequences 题目描述 Given two sequences pushed and popped with distinct va ...

  3. [转帖]熬夜变傻有科学依据,人类睡觉时会被“洗脑”,科学家首次拍下全程 | Science

    熬夜变傻有科学依据,人类睡觉时会被“洗脑”,科学家首次拍下全程 | Science https://mp.weixin.qq.com/s/hJeJjh0GSUclcoh3Z6mySQ 关注前沿科技 量 ...

  4. JavaWeb实现增删查改(图书信息管理)之删除功能实现

    —————————————————————————————————————————————————————————— 删除按钮对应的servlet -->DeleteBooks.java  ↓ ...

  5. Python-09-文件处理

    一.文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 #1. 打开文件,得到文件句柄并赋值给一个变量 f=open('a.txt','r',encoding='u ...

  6. Altium Designer 复制报错-奇怪的问题解决办法

    之前AD画原理图复制元件正常使用,今天使用时复制弹出了错误.很是诧异! 各种搜索查找问题,发现或许是因为前一段时间把,电脑上的所有打印机都删除了导致的. 就安装了一个打印机. 再复制,就不报错了. 或 ...

  7. GOF 的23种JAVA常用设计模式总结 01 设计模式的概念分类和功能

    1.简介 软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.它描述了在软件设计过程中的一些不断重复发生的 ...

  8. redis 安装使用 & SpringBoot Redis配置

    1.安装 https://www.cnblogs.com/dingguofeng/p/8709476.html https://www.runoob.com/redis/redis-keys.html ...

  9. gitlab用户登录与AD域用户集成

    ---恢复内容开始--- 编辑gitlab.rb文件 sudo vi /etc/gitlab/gitlab.rb 下图是我编辑的内容示例(仅供参考): 编辑以下内容: gitlab_rails['ld ...

  10. Python接口自动化基础---post请求

    常见的post传递参数的类型有以下两种: 第一种:application/x-www-form-urlencoded,浏览器原生的form表单,格式如下:input1=xxx&input2=o ...