DS009

Command interpreter

Oct 19th, 2016
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 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.Command_interpreter
  9. {
  10. class CommandInterpreter80points
  11. {
  12. static void Main(string[] args)
  13. {
  14.  
  15. var input = Console.ReadLine().Split(' ').ToArray();
  16.  
  17. string command = Console.ReadLine();
  18.  
  19.  
  20. while (!command.Equals("end"))
  21. {
  22. var elements = command.Split(' ').ToArray();
  23.  
  24. if (elements[0] == "reverse")
  25. {
  26. ReverseArray(input, elements);
  27. }
  28. else if (elements[0] == "sort")
  29. {
  30. SortArray(input, elements);
  31. }
  32. else if (elements[0] == "rollRight")
  33. {
  34. RollRight(input, elements);
  35. }
  36. else if (elements[0] == "rollLeft")
  37. {
  38. RollLeft(input, elements);
  39. }
  40.  
  41.  
  42. command = Console.ReadLine();
  43.  
  44. }
  45.  
  46. Console.WriteLine("[{0}]", string.Join(", ", input).TrimEnd());
  47. }
  48.  
  49. private static void RollLeft(string[] input, string[] elements)
  50. {
  51.  
  52. long numOfRotations = long.Parse(elements[1]) % input.Length;
  53. for (int currentElement = 0; currentElement < numOfRotations; currentElement++)
  54. {
  55. var firstElement = input[0];
  56.  
  57. Array.Copy(input, 1, input, 0, input.Length - 1);
  58. input[input.Length - 1] = firstElement;
  59. }
  60.  
  61. }
  62.  
  63.  
  64. private static void RollRight(string[] input, string[] elements)
  65. {
  66.  
  67. long numOfRotations = long.Parse(elements[1]) % input.Length;
  68. for (int currentElement = 0; currentElement < numOfRotations; currentElement++)
  69. {
  70. var lastElement = input[input.Length - 1];
  71. Array.Copy(input, 0, input, 1, input.Length - 1);
  72. input[0] = lastElement;
  73. }
  74.  
  75. }
  76.  
  77. private static void SortArray(string[] input, string[] elements)
  78. {
  79.  
  80. int startIndex = int.Parse(elements[2]);
  81. int endIndex = int.Parse(elements[4]);
  82. if (startIndex >= input.Length || startIndex < 0 || startIndex + endIndex > input.Length||endIndex<0)
  83. {
  84. Console.WriteLine("Invalid input parameters.");
  85. }
  86. else
  87. {
  88. Array.Sort(input,startIndex, endIndex);
  89. }
  90.  
  91. }
  92.  
  93. private static void ReverseArray(string[] input, string[] elements)
  94. {
  95.  
  96. int startIndex = int.Parse(elements[2]);
  97. int endIndex = int.Parse(elements[4]);
  98. if (startIndex > input.Length || startIndex < 0 || startIndex + endIndex > input.Length||endIndex<0)
  99. {
  100. Console.WriteLine("Invalid input parameters.");
  101. }
  102. else
  103. {
  104. Array.Reverse(input, startIndex, endIndex);
  105. }
  106.  
  107.  
  108.  
  109.  
  110.  
  111. }
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment