Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace _09._Rage_Quit
- {
- class Program
- {
- static void Main(string[] args)
- {
- string rageBuilder = Console.ReadLine();
- StringBuilder rageMassage = new StringBuilder();
- int lastDigitIndex = 0;
- int digitIndex = 0;
- for (int i = 0; i < rageBuilder.Length; i++)
- {
- char currentSymbol = rageBuilder[i];
- int timesToPrint = 0;
- if (int.TryParse(currentSymbol.ToString(), out int firstDigit))
- {
- timesToPrint = firstDigit;
- digitIndex = i;
- bool numberHasTwoDigits = false;
- if (i < rageBuilder.Length-1)
- {
- char nextSymbol = rageBuilder[i + 1];
- if (int.TryParse(nextSymbol.ToString(), out int nextDigit ))
- {
- timesToPrint = firstDigit * 10 + nextDigit;
- numberHasTwoDigits = true;
- }
- }
- string massageToPrint = rageBuilder.Substring(lastDigitIndex, digitIndex-lastDigitIndex);
- lastDigitIndex = digitIndex + 1;
- i = lastDigitIndex ;
- if (numberHasTwoDigits)
- {
- lastDigitIndex++;
- }
- StringBuilder currentMassage = new StringBuilder();
- for (int k = 0; k < massageToPrint.Length; k++)
- {
- char currentChar = massageToPrint[k];
- if (char.IsLetter(currentChar))
- {
- currentChar = char.ToUpper(currentChar);
- }
- currentMassage.Append(currentChar);
- }
- for (int l = 0; l < timesToPrint; l++)
- {
- rageMassage.Append(currentMassage);
- }
- }
- }
- var count = rageMassage.ToString().Distinct().Count();
- Console.WriteLine($"Unique symbols used: {count}");
- //Console.WriteLine(string.Join(" ", uniqeSymbols));
- Console.WriteLine(rageMassage);
- }
- }
- }
Add Comment
Please, Sign In to add comment