using System.Linq;using System;publicclassKata{
publicstaticstringEncode(string m,string key,int initShift){
key =string.Concat(key.Distinct().Concat("abcdefghijklmnopqrstuvwxyz".Where(e=>!key.Contains(e))));int mov =(initShift -1)%26;string res = String.Empty;for(int i =0; i< m.Length; i++){
res += key.Contains(m[i])? key[(key.IndexOf(m[i])+ mov +1)%26]: m[i];
mov = key.Contains(m[i])? key.IndexOf(m[i]): mov;}return res;}publicstaticstringDecode(string m,string key,int initShift){
key =string.Concat(key.Distinct().Concat("abcdefghijklmnopqrstuvwxyz".Where(e=>!key.Contains(e))));int mov =(initShift -1)%26;string res = String.Empty;for(int i =0; i< m.Length; i++){
res += key.Contains(m[i])? key[(26+ key.IndexOf(m[i])- mov -1)%26]: m[i];
mov = key.Contains(m[i])? key.IndexOf(res[i]): mov;}return res;}}
答案2:
using System;using System.Collections.Generic;using System.Linq;publicclassKata{
publicstaticstringEncode(string message,string key,int initShift){
string alf ="abcdefghijklmnopqrstuvwxyz";
alf = key + alf;
IEnumerable<char> num = alf.ToCharArray().Distinct();
alf =null;foreach(char i in num){
alf += i;}string Result =null;foreach(char i in message){
if(alf.IndexOf(i)!=-1){
Result += alf[(alf.IndexOf(i)+ initShift)%26];
initShift =(alf.IndexOf(i)+1)%26;}else{
Result += i;}}return Result;}publicstaticstringDecode(string message,string key,int initShift){
string alf ="abcdefghijklmnopqrstuvwxyz";
alf = key + alf;
IEnumerable<char> num = alf.ToCharArray().Distinct();
alf =null;foreach(char i in num){
alf += i;}string Result =null;foreach(char i in message){
if(alf.IndexOf(i)!=-1){
Result += alf[MyDiv(alf.IndexOf(i)- initShift+1,26)-1];
initShift =MyDiv(alf.IndexOf(i)- initShift+1,26);}else{
Result += i;}}return Result;}publicstaticintMyDiv(int a,int b){
int c = a % b;if(c >0)return c;return c + b;}}
答案3:
using System.Linq;publicclassKata{
publicstaticstringEncode(string message,string key,int step){
key =kluczyk(key);string res ="";foreach(
康迪密码【难度:2级】:答案1:using System.Linq;using System;public class Kata { public static string Encode(string m, string key, int initShift) { key = string.Concat(key.Distinct().Concat("abcdefghijk...