nikolapetkov824

RageQuit(NoRegex)

Nov 18th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace _09._Rage_Quit
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             string rageBuilder = Console.ReadLine();
  13.             StringBuilder rageMassage = new StringBuilder();
  14.            
  15.             int lastDigitIndex = 0;
  16.             int digitIndex = 0;
  17.             for (int i = 0; i < rageBuilder.Length; i++)
  18.             {
  19.                 char currentSymbol = rageBuilder[i];
  20.                 int timesToPrint = 0;
  21.                
  22.                 if (int.TryParse(currentSymbol.ToString(), out int firstDigit))
  23.                 {
  24.                     timesToPrint = firstDigit;
  25.                     digitIndex = i;
  26.                     bool numberHasTwoDigits = false;
  27.                     if (i < rageBuilder.Length-1)
  28.                     {
  29.                         char nextSymbol = rageBuilder[i + 1];
  30.  
  31.                         if (int.TryParse(nextSymbol.ToString(), out int nextDigit ))
  32.                         {
  33.                             timesToPrint = firstDigit * 10 + nextDigit;
  34.                             numberHasTwoDigits = true;
  35.                         }
  36.  
  37.                     }
  38.  
  39.                    
  40.                     string massageToPrint = rageBuilder.Substring(lastDigitIndex, digitIndex-lastDigitIndex);
  41.                     lastDigitIndex = digitIndex + 1;
  42.                     i = lastDigitIndex ;
  43.                     if (numberHasTwoDigits)
  44.                     {
  45.                         lastDigitIndex++;
  46.                     }
  47.  
  48.                     StringBuilder currentMassage = new StringBuilder();
  49.                     for (int k = 0; k < massageToPrint.Length; k++)
  50.                     {
  51.                         char currentChar = massageToPrint[k];
  52.                         if (char.IsLetter(currentChar))
  53.                         {
  54.                             currentChar = char.ToUpper(currentChar);
  55.                         }
  56.  
  57.                         currentMassage.Append(currentChar);
  58.  
  59.                     }
  60.  
  61.                     for (int l = 0; l < timesToPrint; l++)
  62.                     {
  63.                         rageMassage.Append(currentMassage);
  64.                     }
  65.  
  66.                 }
  67.  
  68.             }
  69.  
  70.             var count = rageMassage.ToString().Distinct().Count();
  71.             Console.WriteLine($"Unique symbols used: {count}");
  72.             //Console.WriteLine(string.Join(" ", uniqeSymbols));
  73.             Console.WriteLine(rageMassage);
  74.  
  75.  
  76.         }
  77.     }
  78. }
Add Comment
Please, Sign In to add comment