Advertisement
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;
- using System.Threading.Tasks;
- namespace _03_TakeSkip_Rope
- {
- class Program
- {
- static void Main(string[] args)
- {
- string input = Console.ReadLine();
- List<int> numbers = new List<int>();
- List<string> nonNumbers = new List<string>();
- //тук си правя 2 листа, единия за цифрите, другия за чаровете, обхождам входните данни и проверявам всеки чар от входния стринг
- //дали може да се парсне на число с метода TryParse(), ако може го добавям към листа с числа, иначе към другия лист!
- for (int i = 0; i < input.Length; i++)
- {
- bool isNumber = int.TryParse(input[i].ToString(), out int number);
- if (isNumber)
- {
- numbers.Add(number);
- }
- else
- {
- nonNumbers.Add(input[i].ToString());
- }
- }
- List<int> takeList = new List<int>();
- List<int> skipList = new List<int>();
- //тук си правя take и skip лист, минавам през листа на цифрите и в зависимост от условието добавям цифрата към take или skip листа
- for (int i = 0; i < numbers.Count; i++)
- {
- if (i % 2 == 0)
- {
- takeList.Add(numbers[i]);
- }
- else
- {
- skipList.Add(numbers[i]);
- }
- }
- string result = string.Empty;
- //тук си правя цикъл с които обхождам едновременно и take и skip листа(те са с еднаква дължина по условие!), използвам метода Take()
- //за да мога да взимам чаровете които са ми необходими от nonNumber листа и ги добавям към променливата result, която ми пази краиния
- //резултат, накрая използвам метода RemoveRange() за да махам от nonNumbers листа чаровете, които вече съм взел или минал като внимавам
- // за да не излезна от range използвам проверка за последната итерация на цикъла!
- for (int i = 0; i < takeList.Count; i++)
- {
- int takeIndex = takeList[i];
- int skipIndex = skipList[i];
- var taken = nonNumbers.Take(takeIndex).ToArray();
- var takenInString = string.Join("", taken);
- result += takenInString;
- if (i != takeList.Count - 1)
- {
- nonNumbers.RemoveRange(0, takeIndex + skipIndex);
- }
- }
- Console.WriteLine(result);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement