How to decrypt string from a string containing digits (0-9) and # by using numbers mapping in C#

1 Answer

0 votes
/*
numbers mapping:
 
a = 1
b = 2
...
j = 10#
...
z = 26#
*/

using System;
using System.Text;

internal class Program
{
	private static char ConvertToLowercaseCharachter(string str) {
		int num = int.Parse(str);

		return (char)(num + 96);
	}

	private static string DecryptString(string str) {
		StringBuilder sb = new StringBuilder();
		int i = 0;

		while (i < str.Length - 2) {
			char ch;
			if (str[i + 2] == '#') {
				ch = ConvertToLowercaseCharachter(str.Substring(i, 2));
				i += 2;
			}
			else {
				ch = ConvertToLowercaseCharachter(str.Substring(i, 1));
			}
			i++;
			sb.Append(ch);
		}

		while (i < str.Length)	{
			char ch = ConvertToLowercaseCharachter(str.Substring(i, 1));
			sb.Append(ch);
			i++;
		}

		return sb.ToString();
	}

	public static void Main(string[] args)
	{
		Console.Write(DecryptString("12310#11#26#"));
	}
}




/*
run:

abcjkz
 
*/

 



answered Feb 13, 2024 by avibootz
...