EvgeniVT

Simple Text Editor

Sep 24th, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.50 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Collections.Generic;
  4.  
  5. namespace Simple_Text_Editor
  6. {
  7.     class Program
  8.     {
  9.         static void Main()
  10.         {
  11.             var sb = new StringBuilder();
  12.             var addComm = new Stack<int>();
  13.             var remComm = new Stack<string>();
  14.             var stack = new Stack<int>();
  15.             var n = int.Parse(Console.ReadLine());
  16.             for (int i = 0; i < n; i++)
  17.             {
  18.                 var input = Console.ReadLine()
  19.                     .Split();
  20.                 var com = input[0];
  21.                 switch (com)
  22.                 {
  23.                     case "1":
  24.                         {
  25.                             var arg = input[1];
  26.                             sb.Append(arg);
  27.                             addComm.Push(arg.Length);
  28.                             stack.Push(1);
  29.                         }
  30.                         break;
  31.                     case "2":
  32.                         {
  33.                             var arg = int.Parse(input[1]);
  34.                             var start = sb.Length - arg ;
  35.                             remComm.Push(sb.ToString(start, arg));
  36.                             sb.Remove(start, arg);
  37.                             stack.Push(2);
  38.                         }
  39.                         break;
  40.                     case "3":
  41.                         {
  42.                             var arg = int.Parse(input[1])-1;
  43.                             Console.WriteLine(sb[arg]);
  44.                         }
  45.                         break;
  46.                     case "4":
  47.                         {
  48.                             var uncom = stack.Pop();
  49.                             switch (uncom)
  50.                             {
  51.                                 case 1:
  52.                                     {
  53.                                         var rem = addComm.Pop();
  54.                                         var start = sb.Length - rem;
  55.                                         sb.Remove(start, rem);
  56.                                     }
  57.                                     break;
  58.                                 case 2:
  59.                                     {
  60.                                         var add = remComm.Pop();
  61.                                         sb.Append(add);
  62.                                     }
  63.                                     break;
  64.                             }
  65.                         }
  66.                         break;
  67.                 }
  68.             }          
  69.         }
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment