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("匹配不成功")
Python凯撒密码和括号匹配的更多相关文章
- Python凯撒密码加解密
#凯撒密码第一个版本 #加密 pxpt=input("请输入明文文本:") for p in pxpt: if 'a'<=p<='z': print(chr(ord(' ...
- 凯撒密码移位python
#!/usr/bin/python'''凯撒密码'''a="gmbhqwertghjkcvbzn"s=[""]*len(a)for j in range(26) ...
- Python的一个解释凯撒密码的程序
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detai ...
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
# -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...
- python恺撒密码 与 字符串反码 【chr()与ord()函数的两种不同应用】
恺撒密码 描述 恺撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下: ...
- 凯撒密码 CH Round #57 - Story of the OI Class
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ...
- java:凯撒密码及String的应用
一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ...
- 凯撒密码加密解密--JAVA实现(基础)
凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...
- FCC JS基础算法题(13):Caesars Cipher(凯撒密码)
题目描述: 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A ...
随机推荐
- Storm Kafka与配置和代码集成
1.目标 - 风暴卡夫卡整合 在本Kafka教程中,我们将学习Storm Kafka Integration的概念.此外,我们将在此Kafka Storm集成教程中讨论Storm架构,Storm Cl ...
- c++基础(七)——面向对象程序设计
面向对象程序设计(Object-oriented programming)的核心思想是数据抽象,继承,和动态绑定. 1. 继承 在C++语言中,基类将类型相关的函数与派生类不做改变直接继承的函数区分对 ...
- python3.7 pip升级或安装,拒绝访问 解决方案
- 永久修改 Linux pip国内源
一些常用的国内源 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:https://mirrors.aliyun.com/pypi/simple 中国 ...
- Matplotlib:绘图和可视化
Matplotlib:绘图和可视化 简介 简单绘制线形图 plot函数 支持图类型 保存图表 一 .简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分 ...
- AX2009取销售订单的税额
直接用以下方法即可: Tax::calcTaxAmount(salesLine.TaxGroup, salesLine.TaxItemGroup, systemDateGet(), salesL ...
- YARN-HA高可用集群搭建
YARN-HA配置 1. YARN-HA工作机制 1.1 官方文档:http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/ ...
- resnet的理解-- 面试笔记
上周参加了XX大学研究生推免的面试,面试老爷问到了resnet主要解决了什么问题,我下意识的回答到解决了当网络加深的时候会出现的vanishing/exploding gradients,然后面试老爷 ...
- How to read request body in a asp.net core webapi controller?
原文 How to read request body in a asp.net core webapi controller? A clearer solution, works in ASP.Ne ...
- git add提交时关于 LF will be replaced by CRLF in 问题出现的原因以及解决方式
最近在新创建的github项目中add新框架代码时,出现了LF will be replaced by CRLF in的问题,以下为问题截图 查阅资料才知道,LF和FRLF是两种不同的换行格式,这个警 ...