作者:翟天保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: 字符串加解密相关推荐

  1. 华为机试:字符串比较

    题目来源 华为机试:字符串比较 题目描述 题目解析 思路: 先对A[].B[]进行预处理,生成C[] ,其中 C[i] = std::abs(A[i] - B[i]); 然后我们只看C,这样问题就转换 ...

  2. 华为OD机试题:字符串加解密

    描述 对输入的字符串进行加解密,并输出. 加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该数字加1, ...

  3. HJ29 字符串加解密

    描述 1.对输入的字符串进行加解密,并输出. 2.加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B:字母Z时则替换为a: 当内容是数字时则把该数 ...

  4. 【带你刷华为机试】——字符串分割

    目录 题目:HJ4 字符串分割 题目链接:字符串分割 题目描述: 输入描述: 输出描述: 示例 解题思路: 解法: [前言]先干了生活这碗毒鸡汤:无论将来会遇到谁,生活都是先从遇到自己开始的. 题目: ...

  5. 华为机试HJ4 字符串分割

    通过全部用例,运行时间19ms,占用内存9828kb,记得在上面添加java对应的import包. BufferedReader br = new BufferedReader(new InputSt ...

  6. 【牛客网 - 华为机试 - HJ4 字符串分割】

    描述 •连续输入字符串,请按长度为8拆分每个输入字符串并进行输出: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(每个字符串长度小于等于100) 输出描述: ...

  7. 华为机试-蛇形字符串

    题目描述: 输入一个字符串(不含空格), 请寻找输入中包含所有蛇形字符串. 蛇形字符串定义: 1.蛇形字符串由连续字符对组成,其特点如下: 1.1 字符对定义:字符对由同一字母的大写和小写组成(前大后 ...

  8. 华为机试HJ36字符串加密

    HJ36字符串加密-Python 题目 解题思路 代码 题目 解题思路 1.多组输入,按一般处理办法,循环 2.第一行,密钥,处理办法:转大写后,直接合并26个大写字母,去重,再截取26位,得到密钥: ...

  9. 牛客在线编程-华为机试-中等

    牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...

最新文章

  1. Cytoscape: MCODE增强包的网络模块化分析
  2. Unsupported compiler 'GCC 4.2' selected for architecture 'i386'错误
  3. 挖掘频繁模式、关联和相关
  4. C++学习之路 | PTA(天梯赛)—— L2-024 部落 (25分)(带注释)(并查集)(精简)
  5. 2013江苏计算机二级vfp试题,2013年3月全国计算机二级VFP真题
  6. 【MyBatis笔记】13-一对多左连接查询分步查询(查询所有客户及客户对应的订单)
  7. 由“从按下回车到网页显示”粗谈网页优化
  8. java常用算法整理
  9. visio业务流程图教学_visio业务流程图怎么画
  10. 常用编程语言介绍及特点
  11. 布隆过滤器?好像有点局限啊,瞅一瞅布谷鸟过滤器
  12. python查询12306余票_Python之12306余票查询
  13. 爆款预订,2022 最值得关注的后台框架——Fantastic-admin
  14. 注意啦,还没有支持64位系统的App开发者,务必在12月底前完成这件事
  15. Elasticsearch 8.X 集群无响应,怎么办?
  16. GITHUB下载慢解决办法-插件解决
  17. asp毕业设计——基于asp+access的教师档案管理系统设计与实现(毕业论文+程序源码)——教师档案管理系统
  18. 狐言:王阳明心学、量子物理、心外无物的乱弹
  19. React Navigation 基本使用
  20. 高群耀:移动电影院2.0四大功能实现了用户“观影社交化”

热门文章

  1. Python Day17 Django 03
  2. 常用的组播保留地址列表
  3. Eddy Cue称FBI可能会要求苹果激活iPhone摄像头并打开麦克风
  4. cocos2dx骨骼动画Armature源码分析(一)
  5. linux expect案例用法
  6. 为vc工程添加Unicode Debug和Unicode Release
  7. Tcp keepalive详解
  8. 计算机信息系统安全保卫工作,对计算机信息系统安全保护工作的检查
  9. cpc卡内计费信息异常包括_抖音信息流广告投放收费标准是什么?抖音发一个广告多少钱?...
  10. android ota不打包_android 6.0系统 make otapackage 错误