Advertisement
EmoRz

SimpleTextEditor

Sep 20th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.88 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6.  
  7. namespace SimpleTextEditor
  8. {
  9.     class TextEditor
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var n = int.Parse(Console.ReadLine());
  14.             var text = new StringBuilder();
  15.             var stack = new Stack<string>();
  16.  
  17.             for (int i = 0; i < n; i++)
  18.             {
  19.                 var parts = Console.ReadLine().Split();
  20.                 var command = int.Parse(parts[0]);
  21.  
  22.                 switch (command)
  23.                 {
  24.                     case 1:
  25.                         text = text.Append(parts[1]);
  26.                         stack.Push(text.ToString());          
  27.                         break;
  28.                     case 2:
  29.                         var erase = int.Parse(parts[1]);
  30.                         text = text.Remove(text.Length - erase, erase);
  31.                         stack.Push(text.ToString());                  
  32.                         break;
  33.                     case 3:
  34.                         var charIndex = int.Parse(parts[1])-1;
  35.                         Console.WriteLine(text.ToString().ToCharArray()[charIndex]);                    
  36.                         break;
  37.                     case 4:
  38.                         if (stack.Count>1)
  39.                         {
  40.                             stack.Pop();
  41.                             text = text.Clear();
  42.                             text = text.Append(stack.Peek());
  43.                         }
  44.                         else if (stack.Count == 1)
  45.                         {
  46.                             stack.Pop();
  47.                             text = text.Clear();
  48.                         }                    
  49.                         break;
  50.                     default:
  51.                         break;
  52.                 }
  53.             }
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement