热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

csharp高级练习题:简单加密#3转动比特【难度:3级】景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

csharp高级练习题:简单加密#3 - 转动比特【难度:3级】: 为了加密字符串,给出了这个字符区域(按此顺序!):所有字母(升序,首先是所有UpperCase,然后是所有LowerCase)所有数

csharp高级练习题:简单加密#3 - 转动比特【难度:3级】:

为了加密字符串,给出了这个字符区域(按此顺序!):

  • 所有字母(升序,首先是所有UpperCase,然后是所有LowerCase)
  • 所有数字(升序)
  • 两个字符:""(空格)和"."

这些是64个字符! (这个区域是从零开始的.)
所以,这个地区的每个字符都有6位!

写两种方法:

字符串加密(字符串文本)
string Decrypt(string encryptedText)

功能加密(文本)
函数解密(encryptedText)

std :: string encrypt(std :: string text)
std :: string decrypt(std :: string encryptedText)

export function encrypt(text:string):string
export function decrypt(encryptedText:string):string

预检查:结果


1.如果输入字符串(对于两种方法!)都有字符,则不在该区域中,抛出异常(C#,C ++,Python)或错误(Javascript).
2.如果输入字符串为null或为空,则返回此值!

用于构建加密字符串:
对于每个char使用这些规则:


1.更改char的第五位和下一个char的第一位. (C1.5 <&#61;&#61;> C2.1,仅当有下一个字符时!)
2.反转char的第二位和第四位. (2,4 &#61;> 0-> 1或1-> 0)
3.将前3位更改为char的最后3位. (1,2,3 <&#61;&#61;> 4,5,6)
4.将每个奇数位更改为char的后续位. (1 <&#61;&#61;> 2,3 <&#61;&#61;> 4,5 <&#61;&#61;> 6)
5.反转char的整行位.
6.将第一个更改为char的第三个位. (1 <&#61;&#61;> 3)

当然,每个规则都会从之前的规则中获取已更改的char
有点位置从头开始而不是从结束开始! (所以也许你想的顺序不同!参见例子.)

"B9"的第一条规则示例:


pos:1 2 3 4 5 6
B - > 0 0 0 0 0 1
9 - > 1 1 1 1 0 1
将pos 5从"B"改为pos 1从"9"改变.- > 0 0 0 0 1 1- > 0 1 1 1 0 1

搜索结果
这个kata是简单加密系列的一部分:
简单加密#1 - 交替拆分
简单加密#2 - 索引差异
简单加密#3 - 绕过比特点击
简单加密#4 - Qwerty

有乐趣编码,请不要忘记投票和排名这个习题! ?

编程目标:

public class Kata
{public static string Encrypt(string text){return text;}public static string Decrypt(string encryptedText){return encryptedText;}
}

测试样例:

using NUnit.Framework;
public class SolutionTest
{[Test]public void EncryptExampleTests(){Assert.AreEqual("K", Kata.Encrypt("A"));Assert.AreEqual("KyU", Kata.Encrypt("Abc"));Assert.AreEqual("jvLdRPdQXV8Rd5x", Kata.Encrypt("This is a test.")); Assert.AreEqual("rfR9qRVMT8TUfeyXGXdrLUcT.dUmVd5xUNo1oRdZQ1dtUXs1QVmRL8RMVt9RHqRtU1Ps1LtPQXVdbpZ9Lfp1", Kata.Encrypt("Do the kata Kobayashi Maru Test. Endless fun and excitement when finding a solution.")); }[Test]public void DecryptExampleTests(){

最佳答案(多种解法):

点击查看答案

更多关联题目:

csharp高级练习题:优化寻路算法【难度:3级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp基础练习题:完成模式#1【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp基础练习题:积分总额【难度:0级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/simple-encryption-number-3-turn-the-bits-around


推荐阅读
  • 基于SSM框架的在线考试系统:随机组卷功能详解
    本文深入探讨了基于SSM(Spring, Spring MVC, MyBatis)框架构建的在线考试系统中,随机组卷功能的设计与实现方法。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 编码unicode解决了语言不通的问题.但是.unicode又有一个新问题.由于unicode是万国码.把所有国家的文字都编进去了.这就导致一个unicode占用的空间会很大.原来 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • 在开发过程中,有时需要提供用户创建数据库的功能。本文介绍了如何利用 .NET 和 ADOX 在应用程序中实现创建 Access 数据库,并详细说明了创建数据库及表的具体步骤。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • ASP.NET 进度条实现详解
    本文介绍了如何在ASP.NET中使用HTML和JavaScript创建一个动态更新的进度条,并通过Default.aspx页面进行展示。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
author-avatar
手机用户2502894731
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有