首页 > 其他分享 >HJ29_字符串加解密_模拟

HJ29_字符串加解密_模拟

时间:2023-03-25 13:58:26浏览次数:44  
标签:elif encrypt int 加解密 else HJ29 字符串 decipher

思路:

根据加解密规则,使字符串加解密后输出。这是初始理解,编码起来较麻烦。查看高赞题解后,学到一种新思路关于加解密:最佳方法是通过通过设计加解密表,代码比较简单,通过列表index实现加解密。

这是我的代码:

 1 f_encrypt=input()
 2 f_decipher=input()
 3 o_encrypt=''
 4 o_decipher=''
 5 for i in f_encrypt:
 6     if i.isalpha() and i.isupper():
 7         if i=='Z':
 8             o_encrypt+='a'           
 9         else:
10             o_encrypt+=chr(ord(i)+1).lower()
11     elif i.isalpha() and i.islower():
12         if i=='z':
13             o_encrypt+='A'
14         else:
15             o_encrypt+=chr(ord(i)+1).upper() 
16     elif i.isdigit():
17         if int(i)==9:
18             o_encrypt+="0"
19         else:
20             o_encrypt+=str(int(i)+1)
21     else:
22         o_encrypt+=i
23 for i in f_decipher:
24     if i.isalpha() and i.isupper():
25         if i=='A':
26             o_decipher+='z'           
27         else:
28             o_decipher+=chr(ord(i)-1).lower()
29     elif i.isalpha() and i.islower():
30         if i=='a':
31             o_decipher+='Z'
32         else:
33             o_decipher+=chr(ord(i)-1).upper() 
34     elif i.isdigit():
35         if int(i)==0:
36             o_decipher+="9"
37         else:
38             o_decipher+=str(int(i)-1)
39     else:
40         o_decipher+=i
41 print(o_encrypt)
42 print(o_decipher)

 

这是查表解密的代码:

 1 o_encrypt=''
 2 o_decipher=''
 3 l1="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
 4 l2="1234567890bcdefghijklmnopqrstuvwxyzaBCDEFGHIJKLMNOPQRSTUVWXYZA"
 5 for i in input():
 6     if i in l1:
 7         o_encrypt+=l2[l1.index(i)]
 8     else:
 9         o_encrypt+=i
10 for i in input():
11     if i in l2:
12         o_decipher+=l1[l2.index(i)]
13     else:
14         o_decipher+=i
15 print(o_encrypt)
16 print(o_decipher)

 

标签:elif,encrypt,int,加解密,else,HJ29,字符串,decipher
From: https://www.cnblogs.com/tanyuanqing/p/17254590.html

相关文章

  • shell判断字符串结尾
    下面围绕“判断字符串是否以.txt结尾”展开。转变一下也同样适用于“判断字符串是否以.txt开头”。通用的方法#方法一、使用grep命令#!/bin/shstr="/path/to/foo.tx......
  • 实验2 字符串和列表
    实验任务1task.py实验源码:x='nbaFIFA'print(x.upper())print(x.lower())print(x.swapcase())print()x='abc'print(x.center(10,'*'))print(x.ljust(1......
  • 优美字符串
    0036:优美字符串查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述对于给定的两个字符串,我们将要做的是将它们拼接起来,拼接成一个“优美”的字符串,那么什么样的......
  • 代码随想录Day9-Leetcode28. 实现 strStr(),459.重复的子字符串
    28.实现strStr()这题之前写过,而且印象深刻的是细节很多,所以这边是看完以前的代码,再写的(几乎是在背代码了hhh)甚至这样,next[0]=-1,和j开始匹配子串是没初始化成......
  • java-使用jmh基准测试框架比较五种字符串拼接性能
    java-使用jmh基准测试框架比较五种字符串拼接性能引言Java中提供了5种字符串拼接的方法,使用+拼接字符串是最长见的方法。除此还有StringBuilder、StringBuffer、MessageForm......
  • 实验2 字符串和列表
    实验二字符串和列表实验任务1task1.py实验源码x='nbaFIFA'print(x.upper())print(x.lower())print(x.swapcase())print()x='abc'print(x.center(10,'*'))......
  • Python字符串_拼接+还是join
    常用的join方法用来将列表或元祖中包含的多个字符串连接成一个字符串newstr = str.join(iterable)  newstr:表示合并后生成的新字符串; str:用于指定合并时的分隔......
  • 代码随想录Day8-Leetcode344.反转字符串 II,541. 反转字符串II ,剑指Offer 05.替换空格
    344.反转字符串题目链接:https://leetcode.cn/problems/reverse-string明显的双指针/***@param{character[]}s*@return{void}Donotreturnanything,modif......
  • ansible中字符串处理
    [root@node-1test]#ansible-playbookhba_card_check.ymlPLAY[compute[0]]************************************************************************************......
  • ASP 代码示例,可以生成一个8位随机字符串由字母和数字组成
     ChatGP回答的:下面是一个ASP代码示例,可以生成一个8位随机字符串由字母和数字组成:```FunctiongenerateRandomString(length)dimchars,i,resultchars="A......