nikolayneykov

Untitled

Feb 25th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.85 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. class Program
  6. {
  7.     static void Main(string[] args)
  8.     {
  9.         string input = Console.ReadLine();
  10.  
  11.         List<char> nonNumberList = input.ToList(); //тук ще пазим само буквичките
  12.         List<char> numberList = nonNumberList.Where(x => char.IsDigit(x)).ToList(); //тук са числата
  13.         nonNumberList = nonNumberList.Where(x => !char.IsDigit(x)).ToList(); //премахваме числата и остават само букви
  14.  
  15.         List<char> result = new List<char>(); //крайния резултат
  16.         int index = 0; //настоящия индекс от който ще вземаме текст
  17.  
  18.         for (int i = 0; i < numberList.Count && index < nonNumberList.Count; i += 2) //въртим цикъл по числата като инкрементираме с 2
  19.         {
  20.             int take = int.Parse(numberList[i].ToString()); //броят на буквите които ще вземем
  21.             int skip = int.Parse(numberList[i + 1].ToString()); //броят на буквите които ще пропуснем
  22.             take = Math.Min(take, nonNumberList.Count - index); //преизчисляваме take да не превиши границите на списъка с буквите
  23.  
  24.             result.AddRange(nonNumberList.GetRange(index, take)); //към резултата добавяме толкова букви колкото има от индекса до take
  25.             index += take; //инкрементираме индекса с буквите които сме взели
  26.             index += skip; //инкрементираме индекса с буквите които сме пропуснали
  27.  
  28.         }
  29.  
  30.         Console.WriteLine(string.Join("", result));
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment