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

这篇博客介绍了C#编程中的一个高级加密练习,涉及字符区域、加密规则和一系列相关练习题,旨在帮助C#初学者提升技能。题目要求实现一个加密字符串的方法,通过特定规则转动比特。文章提供了编程目标、测试样例以及相关题目链接。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值