华为机试HJ29: 字符串加解密
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
1、对输入的字符串进行加解密,并输出。
2、加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
3、解密方法为加密的逆过程。
本题含有多组样例输入。
输入描述:
输入说明
输入一串要加密的密码
输入一串加过密的密码
输出描述:
输出说明
输出加密后的字符
输出解密后的字符
示例:
输入:
abcdefg
BCDEFGH
输出:
BCDEFGH
abcdefg
解题思路:
这道题就是个标准的字符串处理题,我就写了两个函数分别进行加密解密,比较简单;还有用密码本的方式做也可以。
测试代码:
#include <iostream>
#include <string>
using namespace std;string encryption(string password)
{string result;int size=password.size();for(int i=0;i<size;++i){if(password[i]>='A'&&password[i]<='Y'){result+=password[i]+33;}else if(password[i]=='Z'){result+=97;}else if(password[i]>='a'&&password[i]<='y'){result+=password[i]-31;}else if(password[i]=='z'){result+=65;}else if(password[i]>='0'&&password[i]<='8'){result+=password[i]+1;}else if(password[i]=='9'){result+='0';}else{result+=password[i];}}return result;
}string decrypt(string password)
{string result;int size=password.size();for(int i=0;i<size;++i){if(password[i]>='B'&&password[i]<='Z'){result+=password[i]+31;}else if(password[i]=='A'){result+='z';}else if(password[i]>='b'&&password[i]<='z'){result+=password[i]-33;}else if(password[i]=='a'){result+='Z';}else if(password[i]>='1'&&password[i]<='9'){result+=password[i]-1;}else if(password[i]=='0'){result+='9';}else{result+=password[i];}}return result;
}int main()
{string p1,p2;while(cin>>p1>>p2){string r1=encryption(p1);string r2=decrypt(p2);cout<<r1<<endl<<r2<<endl;}return 0;
}
华为机试HJ29: 字符串加解密相关推荐
- 华为机试:字符串比较
题目来源 华为机试:字符串比较 题目描述 题目解析 思路: 先对A[].B[]进行预处理,生成C[] ,其中 C[i] = std::abs(A[i] - B[i]); 然后我们只看C,这样问题就转换 ...
- 华为OD机试题:字符串加解密
描述 对输入的字符串进行加解密,并输出. 加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该数字加1, ...
- HJ29 字符串加解密
描述 1.对输入的字符串进行加解密,并输出. 2.加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该数 ...
- 【带你刷华为机试】——字符串分割
目录 题目:HJ4 字符串分割 题目链接:字符串分割 题目描述: 输入描述: 输出描述: 示例 解题思路: 解法: [前言]先干了生活这碗毒鸡汤:无论将来会遇到谁,生活都是先从遇到自己开始的. 题目: ...
- 华为机试HJ4 字符串分割
通过全部用例,运行时间19ms,占用内存9828kb,记得在上面添加java对应的import包. BufferedReader br = new BufferedReader(new InputSt ...
- 【牛客网 - 华为机试 - HJ4 字符串分割】
描述 •连续输入字符串,请按长度为8拆分每个输入字符串并进行输出: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(每个字符串长度小于等于100) 输出描述: ...
- 华为机试-蛇形字符串
题目描述: 输入一个字符串(不含空格), 请寻找输入中包含所有蛇形字符串. 蛇形字符串定义: 1.蛇形字符串由连续字符对组成,其特点如下: 1.1 字符对定义:字符对由同一字母的大写和小写组成(前大后 ...
- 华为机试HJ36字符串加密
HJ36字符串加密-Python 题目 解题思路 代码 题目 解题思路 1.多组输入,按一般处理办法,循环 2.第一行,密钥,处理办法:转大写后,直接合并26个大写字母,去重,再截取26位,得到密钥: ...
- 牛客在线编程-华为机试-中等
牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...
最新文章
- Cytoscape: MCODE增强包的网络模块化分析
- Unsupported compiler 'GCC 4.2' selected for architecture 'i386'错误
- 挖掘频繁模式、关联和相关
- C++学习之路 | PTA(天梯赛)—— L2-024 部落 (25分)(带注释)(并查集)(精简)
- 2013江苏计算机二级vfp试题,2013年3月全国计算机二级VFP真题
- 【MyBatis笔记】13-一对多左连接查询分步查询(查询所有客户及客户对应的订单)
- 由“从按下回车到网页显示”粗谈网页优化
- java常用算法整理
- visio业务流程图教学_visio业务流程图怎么画
- 常用编程语言介绍及特点
- 布隆过滤器?好像有点局限啊,瞅一瞅布谷鸟过滤器
- python查询12306余票_Python之12306余票查询
- 爆款预订,2022 最值得关注的后台框架——Fantastic-admin
- 注意啦,还没有支持64位系统的App开发者,务必在12月底前完成这件事
- Elasticsearch 8.X 集群无响应,怎么办?
- GITHUB下载慢解决办法-插件解决
- asp毕业设计——基于asp+access的教师档案管理系统设计与实现(毕业论文+程序源码)——教师档案管理系统
- 狐言:王阳明心学、量子物理、心外无物的乱弹
- React Navigation 基本使用
- 高群耀:移动电影院2.0四大功能实现了用户“观影社交化”
热门文章
- Python Day17 Django 03
- 常用的组播保留地址列表
- Eddy Cue称FBI可能会要求苹果激活iPhone摄像头并打开麦克风
- cocos2dx骨骼动画Armature源码分析(一)
- linux expect案例用法
- 为vc工程添加Unicode Debug和Unicode Release
- Tcp keepalive详解
- 计算机信息系统安全保卫工作,对计算机信息系统安全保护工作的检查
- cpc卡内计费信息异常包括_抖音信息流广告投放收费标准是什么?抖音发一个广告多少钱?...
- android ota不打包_android 6.0系统 make otapackage 错误