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 ...
随机推荐
- 为文献管理软件Mendeley设置代理
Mendeley由于某些原因无法在线同步,需要fq,在tools->option->connection中可以设置http代理或者sock5代理, sock5可以使用shadowsocks ...
- PHP 23种设计模式
学习PHP,对设计模式永远是逃不掉的:今天把php23种设计模式及其demo好好整理如下: 记录PHP关于23种设计模式的简单Demo. Demo地址:https://segmentfault.com ...
- INV*账户别名接收发放
DECLARE --p_old_new_flag OLD 为导出 NEW 为导入 l_iface_rec inv.mtl_transactions_interface%ROWTYPE; l_iface ...
- 48 容器(七)——HashMap底层:哈希表结构与哈希算法
哈希表结构 哈希表是由数组+链表组成的,首先有一个数组,数组的每一个位置都用来存储一个链表,链表的基本节点为:[hash值,key值,value值,next],当存入一个键值对时,首先调用hashco ...
- flask框架(五)——支持正则写法、模板用法、请求响应、session
如果用正则的话,我们要用自定义的路由. 1导入from werkzeug.routing import BaseConverter 2我先要写一个类,然后继承BaseConverter,然后实现__i ...
- github上热门深度学习项目
github上热门深度学习项目 项目名 Stars 描述 TensorFlow 29622 使用数据流图进行可扩展机器学习的计算. Caffe 11799 Caffe:深度学习的快速开放框架. [Ne ...
- 成员函数内定义static变量(不安全,各对象之间共享)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u012317833/article/de ...
- Kubernetes1.11.1 使用Nvidia显卡配置方法
一.安装 1.1.kubernetes硬件支持问题说明 Kubernetes目前主要在很小程度上支持CPU和内存的发现.Kubelet本身处理的设备非常少.Kubernetes对于硬件都使用都依赖于硬 ...
- 分享大麦UWP版本开发历程-03.GridView或ListView 滚动底部自动加载后续数据
今天跟大家分享的是大麦UWP客户端,在分类.订单或是搜索时都用到的一个小技巧,技术粗糙大神勿喷. 以大麦分类举例,默认打开的时候,会为用户展示20条数据,当用户滚动鼠标或者使用手势将列表滑动到倒数第二 ...
- Sql Server 根据条件查找多条数据中最大值的详细记录
--(正常效果) select l.* from loadCurveSampling l left join Meter m on l.meter_id=m.Meter_ID --聚合当天最大值数据记 ...