Advertisement
Guest User

Stuck Zipper Solution

a guest
Feb 20th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.43 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 _06.StuckZipper
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var firstPart = Console.ReadLine().Split().Select(int.Parse).ToList();
  14.             var secondPart = Console.ReadLine().Split().Select(int.Parse).ToList();
  15.             // Трябва да провериш и двете колекции, за да намериш най-малкия елемент
  16.             var bothParts = firstPart.Select(el => el).Concat(secondPart);
  17.  
  18.             // При отрицателни числа ToString() връща 1 знак повече(заради "-"), затова го замествам с абсолютната му стойност
  19.             var min = Math.Abs(bothParts.Min());
  20.             for (int i = 0; i < firstPart.Count; i++)
  21.             {
  22.                 if (Math.Abs(firstPart[i]).ToString().Length > min.ToString().Length)
  23.                 {
  24.                     firstPart.Remove(firstPart[i]);
  25.                     i--; //Когато махаш елемент от колекцията индексът не трябва да се инкрементира(ще прескочиш един елемент)
  26.                 }
  27.             }
  28.             for (int i = 0; i < secondPart.Count; i++)
  29.             {
  30.                 if (Math.Abs(secondPart[i]).ToString().Length > min.ToString().Length)
  31.                 {
  32.                     secondPart.Remove(secondPart[i]);
  33.                     i--; //Когато махаш елемент от колекцията индексът не трябва да се инкрементира(ще прескочиш един елемент)
  34.                 }
  35.             }
  36.             var maxLenght = Math.Max(firstPart.Count, secondPart.Count);
  37.             var result = new List<int>();
  38.  
  39.             for (int i = 0; i < maxLenght; i++)
  40.             {
  41.                 // Count - 1 е индексът на последния елемент в колекцията
  42.                 if (i <= secondPart.Count - 1)
  43.                 {
  44.                     result.Add(secondPart[i]);
  45.                 }
  46.  
  47.                 if (i <= firstPart.Count - 1)
  48.                 {
  49.                     result.Add(firstPart[i]);
  50.                 }
  51.             }
  52.  
  53.             Console.WriteLine(string.Join(" ", result));
  54.         }
  55.  
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement