热门标签 | 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


推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
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社区 版权所有