Advertisement
sivancheva

SpyGram2

Oct 29th, 2017
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Threading.Tasks;
  7.  
  8. namespace _02_SpyGram
  9. {
  10. class SpyGram
  11. {
  12. static void Main(string[] args)
  13. {
  14. var key = Console.ReadLine();
  15. var input = Console.ReadLine();
  16.  
  17. var senderMessageDict = new Dictionary<string, List<string>>();
  18. var pattern = new Regex(@"^TO:\s{1}(?<sender>[A-Z]+);\s{1}MESSAGE:\s{1}(.*);$");
  19.  
  20.  
  21. while (input != "END")
  22. {
  23. var matchedMessage = pattern.Match(input);
  24.  
  25. if (!matchedMessage.Success)
  26. {
  27. input = Console.ReadLine();
  28. continue;
  29. }
  30. string sender = matchedMessage.Groups["sender"].Value;
  31.  
  32. int index = (matchedMessage.Length / key.Length) +1;
  33. var keyCurrent = string.Concat(Enumerable.Repeat(key, index))
  34. .ToCharArray().Select(x => x - 48).ToArray();
  35.  
  36. StringBuilder result = new StringBuilder();
  37.  
  38. for (int i = 0; i < input.Length ; i++)
  39. {
  40. var a = (int)input[i] + (keyCurrent[i]);
  41.  
  42. char character = (char)a;
  43. string text = character.ToString();
  44.  
  45. result.Append(text);
  46. }
  47.  
  48. if (!senderMessageDict.ContainsKey(sender))
  49. {
  50. senderMessageDict.Add(sender, new List<string>());
  51. senderMessageDict[sender].Add(result.ToString());
  52. }
  53. else
  54. {
  55. senderMessageDict[sender].Add(result.ToString());
  56. }
  57.  
  58. input = Console.ReadLine();
  59. }
  60.  
  61. foreach (var sender in senderMessageDict.OrderBy(a => a.Key))
  62. {
  63. foreach (var a in sender.Value)
  64. {
  65. Console.WriteLine($"{a}");
  66. }
  67.  
  68. }
  69. }
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement