Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.09 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _3.Take_Skip_Rope
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             List<char> inputText = Console.ReadLine().ToList();
  14.          
  15.  
  16.             List<int> numbers = new List<int>();
  17.  
  18.             List<string> notNumbers = new List<string>();
  19.  
  20.             List<int> skipNumbers = new List<int>();
  21.             List<int> takeNumbers = new List<int>();
  22.  
  23.             int skipSum = 0;
  24.  
  25.             List<string> resultOutput = new List<string>();
  26.  
  27.             //Добавяне към новия лист от числа
  28.             for (int i = 0; i < inputText.Count; i++)
  29.             {
  30.                 string fromCharToString = new string(inputText[i], 1);
  31.                 int n;
  32.                 var isNumber = int.TryParse(fromCharToString, out n);
  33.  
  34.                 if (isNumber)
  35.                 {
  36.                     numbers.Add(n);
  37.                 }
  38.                 //Добавяне на новия лист съдържащ not numbers
  39.                 else
  40.                 {
  41.                     notNumbers.Add(inputText[i].ToString());
  42.                 }
  43.             }
  44.             // Разделяне на List numbers на два други листа (take , skip)
  45.             for (int i = 0; i < numbers.Count; i++)
  46.             {
  47.                 if (i % 2 == 0)
  48.                 {
  49.                     takeNumbers.Add(numbers[i]);
  50.                 }
  51.                 else
  52.                 {
  53.                     skipNumbers.Add(numbers[i]);
  54.                 }
  55.             }
  56.  
  57.             // Добавяне към лист result данните за output
  58.             for (int i = 0; i < takeNumbers.Count; i++)
  59.             {
  60.  
  61.                 resultOutput.AddRange(notNumbers.Skip(skipSum).Take(takeNumbers[i]).ToList());
  62.  
  63.                 skipSum += skipNumbers[i];
  64.  
  65.                 skipSum += takeNumbers[i];
  66.             }
  67.             Console.WriteLine(string.Join("", resultOutput));
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement