Advertisement
Guest User

Untitled

a guest
Aug 14th, 2017
454
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.59 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace Command_Interpreter
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var dataToChange = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
  11.             List<string> theNewStr = new List<string>();
  12.  
  13.             string input = Console.ReadLine();
  14.  
  15.             while (input != "end")
  16.             {
  17.                 string[] inputTokens = input.Split(' ').ToArray();
  18.  
  19.                 if (inputTokens[0] == "reverse")
  20.                 {
  21.                     int start = int.Parse(inputTokens[2]);
  22.                     int count = int.Parse(inputTokens[4]);
  23.  
  24.                     if (start < 0 || start >= dataToChange.Count || (start + count) > dataToChange.Count || count < 0)
  25.                     {
  26.                         Console.WriteLine("Invalid input parameters.");
  27.                     }
  28.                     else
  29.                     {
  30.                         dataToChange.Reverse(start, count);
  31.                     }
  32.                     //Console.WriteLine(string.Join(" ",dataToChange));
  33.                 }
  34.                 else if (inputTokens[0] == "sort")
  35.                 {
  36.                     int start = int.Parse(inputTokens[2]);
  37.                     int count = int.Parse(inputTokens[4]);
  38.  
  39.                     if (start < 0 || start >= dataToChange.Count || (start + count) > dataToChange.Count || count < 0)
  40.                     {
  41.                         Console.WriteLine("Invalid input parameters.");
  42.                     }
  43.                     else
  44.                     {
  45.                         theNewStr = dataToChange.Skip(start).Take(count).OrderBy(str => str).ToList();
  46.                         dataToChange.RemoveRange(start, count);
  47.                         dataToChange.InsertRange(start, theNewStr);
  48.                     }
  49.                 }
  50.                 else if (inputTokens[0] == "rollLeft")
  51.                 {
  52.                     int count = int.Parse(inputTokens[1]);
  53.  
  54.                     if (count < 0)
  55.                     {
  56.                         Console.WriteLine("Invalid input parameters.");
  57.                     }
  58.                     else
  59.                     {
  60.                         count = count % dataToChange.Count;
  61.                         for (int i = 0; i < count; i++)
  62.                         {
  63.                             dataToChange.Insert(dataToChange.Count, dataToChange[0]);
  64.                             dataToChange.RemoveAt(0);
  65.                         }
  66.                     }
  67.                     // Console.WriteLine(string.Join(" ",dataToChange));
  68.                 }
  69.                 else if (inputTokens[0] == "rollRight")
  70.                 {
  71.                     int count = int.Parse(inputTokens[1]);
  72.  
  73.                     if (count < 0)
  74.                     {
  75.                         Console.WriteLine("Invalid input parameters.");
  76.                     }
  77.                     else
  78.                     {
  79.                         count = count % dataToChange.Count;
  80.                         for (int i = 0; i < count; i++)
  81.                         {
  82.                             dataToChange.Insert(0, dataToChange[dataToChange.Count - 1]);
  83.                             dataToChange.RemoveAt(dataToChange.Count - 1);
  84.                         }
  85.                     }
  86.                     // Console.WriteLine(string.Join(" ", dataToChange));
  87.                 }
  88.  
  89.                 input = Console.ReadLine();
  90.             }
  91.             Console.WriteLine($"[{string.Join(", ", dataToChange)}]");
  92.         }
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement