Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- namespace Command_Interpreter
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<string> list = Console.ReadLine()
- .Split(new char[] { ' ', '\t', '\r', '\n' },StringSplitOptions.RemoveEmptyEntries)
- .ToList();
- string input = Console.ReadLine();
- while (input != "end")
- {
- int start = 0;
- int count = 0;
- string[] tokens = input
- .Split(new char[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries)
- .ToArray();
- switch (tokens[0])
- {
- case "reverse":
- start = int.Parse(tokens[2]);
- count = int.Parse(tokens[4]);
- Reverse(list,start,count);
- break;
- case "sort":
- start = int.Parse(tokens[2]);
- count = int.Parse(tokens[4]);
- Sort(list, start, count);
- break;
- case "rollLeft":
- count = int.Parse(tokens[1]);
- rollLeft(list, count);
- break;
- case "rollRight":
- count = int.Parse(tokens[1]);
- rollRight(list, count);
- break;
- default:
- break;
- }
- input = Console.ReadLine();
- }
- Console.WriteLine("[{0}]",string.Join(", ",list));
- }
- private static void Reverse (List<string> list, int start, int count)
- {
- if (start < 0 || start >= list.Count || count < 0 || start + count - 1 >= list.Count)
- {
- Console.WriteLine("Invalid input parameters.");
- return;
- }
- list.Reverse(start, count);
- }
- private static void Sort (List<string> list, int start, int count)
- {
- if (start < 0 || start >= list.Count || count < 0 || start + count - 1 >= list.Count)
- {
- Console.WriteLine("Invalid input parameters.");
- return;
- }
- list.Sort(start, count, StringComparer.InvariantCulture);
- }
- private static void rollLeft (List<string> list, int count)
- {
- if (count < 0)
- {
- Console.WriteLine("Invalid input parameters.");
- return;
- }
- int pos = count % list.Count;
- for (int i = 0; i < pos; i++)
- {
- list.Add(list[0]);
- list.Remove(list[0]);
- }
- }
- private static void rollRight (List<string> list, int count)
- {
- if (count < 0)
- {
- Console.WriteLine("Invalid input parameters.");
- return;
- }
- int pos = count % list.Count;
- for (int i = 0; i < pos; i++)
- {
- list.Insert(0, list[list.Count - 1]);
- list.RemoveAt(list.Count - 1);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement