Advertisement
Danny_Berova

05.SoftUniMessages (83/100)

Aug 7th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.22 KB | None | 0 0
  1.  
  2. namespace _05.SoftUniMessages
  3. {
  4.     using System;
  5.     using System.Collections.Generic;
  6.     using System.Linq;
  7.     using System.Text;
  8.     using System.Text.RegularExpressions;
  9.  
  10.     public class Program
  11.     {
  12.         public static void Main()
  13.         {
  14.             string pattern = @"^(\d+)(.+)(\d+)$";
  15.             Regex regex = new Regex(pattern);
  16.  
  17.             while (true)
  18.             {
  19.                 string encryptedMessage = Console.ReadLine();
  20.                 if (encryptedMessage == "Decrypt!")
  21.                 {
  22.                     break;
  23.                 }
  24.  
  25.                 int searchedLenght = int.Parse(Console.ReadLine());
  26.  
  27.                 Match message = regex.Match(encryptedMessage);
  28.                 if (message.Success)
  29.                 {
  30.                     char[] symbols = encryptedMessage.ToCharArray();
  31.                     List<char> letters = new List<char>();
  32.                     List<int> digits = new List<int>();
  33.                     StringBuilder decrypted = new StringBuilder();
  34.  
  35.                     for (int i = 0; i < symbols.Length; i++)
  36.                     {
  37.                         if (Char.IsDigit(symbols[i]))
  38.                         {
  39.                             digits.Add(symbols[i] - '0');
  40.                         }
  41.                         if (Char.IsLetter(symbols[i]))
  42.                         {
  43.                             letters.Add(symbols[i]);
  44.                         }
  45.                     }
  46.  
  47.                     if (searchedLenght < letters.Count)
  48.                     {
  49.                         continue;
  50.                     }
  51.                     else
  52.                     {
  53.                         for (int i = 0; i < digits.Count; i++)
  54.                         {
  55.                             int index = digits[i];
  56.                             if (index < letters.Count)
  57.                             {
  58.                                 char currentLetter = letters[index];
  59.                                 decrypted.Append(currentLetter);
  60.                             }
  61.                         }
  62.                     }
  63.  
  64.                     Console.WriteLine($"{string.Join("", letters)} = {decrypted.ToString()}");
  65.  
  66.                 }
  67.  
  68.             }
  69.         }
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement