Advertisement
MiroslavKisov

RageQuit

Nov 5th, 2017
231
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. using System.Text.RegularExpressions;
  6. using System.Threading.Tasks;
  7.  
  8. namespace _03.RageQuit
  9. {
  10.     public class StartUp
  11.     {
  12.         public static void Main()
  13.         {
  14.             string input = Console.ReadLine().ToUpper();
  15.             List<char> inputSymbols = input.ToCharArray().ToList();
  16.             List<char> resultSymbols = new List<char>();
  17.             StringBuilder finalString = new StringBuilder();
  18.             StringBuilder printString = new StringBuilder();
  19.             int printNumberOfTimes = 0;
  20.             int distinctCounter = 0;
  21.             string distinctString = string.Empty;
  22.             string nums = string.Empty;
  23.             bool isDigit = false;
  24.             for (int i = 0; i < inputSymbols.Count; i++)
  25.             {
  26.                 if (Char.IsLetter(inputSymbols[i])
  27.                     || Char.IsSymbol(inputSymbols[i])
  28.                     || Char.IsPunctuation(inputSymbols[i])
  29.                     || Char.IsWhiteSpace(inputSymbols[i])
  30.                     || Char.IsSeparator(inputSymbols[i])
  31.                     || Char.IsControl(inputSymbols[i]))
  32.                 {
  33.                     if (isDigit)
  34.                     {
  35.                         AppendCurrentString(printString, printNumberOfTimes,finalString);
  36.                         printString.Clear();
  37.                         nums = string.Empty;
  38.                         isDigit = false;
  39.                     }
  40.                     printString.Append(inputSymbols[i]);
  41.                 }
  42.  
  43.                 else if (Char.IsNumber(inputSymbols[i]))
  44.                 {
  45.                     isDigit = true;
  46.                     nums += inputSymbols[i];
  47.                     printNumberOfTimes = int.Parse(nums);
  48.                     if (i == inputSymbols.Count - 1)
  49.                     {
  50.                         AppendCurrentString(printString, printNumberOfTimes, finalString);
  51.                     }
  52.                 }
  53.             }
  54.  
  55.             distinctString = finalString.ToString();
  56.             distinctCounter = distinctString.Distinct().Count();
  57.             Console.WriteLine($"Unique symbols used: {distinctCounter}");
  58.             Console.WriteLine($"{finalString}");
  59.         }
  60.  
  61.         private static void AppendCurrentString(StringBuilder printString, int printNumberOfTimes, StringBuilder finalString)
  62.         {
  63.             for (int i = 0; i < printNumberOfTimes; i++)
  64.             {
  65.                 finalString.Append(printString);
  66.             }
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement