Advertisement
skipter

List* - Stuck Zippers/ Remove bigger digits, unite lists

Jul 11th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.26 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 _6.Stuck_Zipper
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             List<int> firstList = Console.ReadLine()
  14.                 .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  15.                 .Select(int.Parse)
  16.                 .ToList();
  17.             List<int> secondList = Console.ReadLine()
  18.                 .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  19.                 .Select(int.Parse)
  20.                 .ToList();
  21.             //  var minNumberInList = FindMinDigits(firstList, secondList);
  22.             var result = ListUnited(firstList, secondList);
  23.             Console.WriteLine(string.Join(" ", result));
  24.         }
  25.         private static List<int> ListUnited (List<int> list1, List<int> list2)
  26.         {
  27.             var firstListResult = new List<int>();
  28.             var secondListResult = new List<int>();
  29.             var resultList = new List<int>();
  30.            
  31.            foreach (var number in list1) // adding smallest nums in new list
  32.             {
  33.                     var stringNumber = Math.Abs(number).ToString();
  34.  
  35.                     if (stringNumber.Length == FindMinDigits(list1, list2))
  36.                     {
  37.                         firstListResult.Add(number);
  38.                     }
  39.                 }
  40.             foreach (var number in list2) // adding smallest nums in new list
  41.             {
  42.                 var stringNumber = Math.Abs(number).ToString();
  43.  
  44.                 if (stringNumber.Length == FindMinDigits(list1, list2))
  45.                 {
  46.                     secondListResult.Add(number);
  47.                 }
  48.             }
  49.             var totalLength = firstListResult.Count + secondListResult.Count;
  50.             for (int cnt = 0; cnt < totalLength; cnt++)
  51.             {
  52.                 var firstListNumber = 0;
  53.                 var secondListNumber = 0;
  54.  
  55.                 if (secondListResult.Count > cnt)
  56.                 {
  57.                     secondListNumber = secondListResult[cnt];
  58.                     resultList.Add(secondListNumber);
  59.                 }
  60.                 if (firstListResult.Count > cnt)
  61.                 {
  62.                     firstListNumber = firstListResult[cnt];
  63.                     resultList.Add(firstListNumber);
  64.                 }
  65.             }
  66.             return resultList;
  67.         }
  68.        
  69.         private static int FindMinDigits (List<int> list1, List<int> list2)
  70.         {
  71.             var maxDigits = int.MaxValue;
  72.             foreach (var number in list1)
  73.             {
  74.                 var stringLength = Math.Abs(number).ToString(); //Search for biggest digits in list1
  75.                 if (stringLength.Length < maxDigits)
  76.                 {
  77.                     maxDigits = stringLength.Length;
  78.                 }
  79.             }
  80.             foreach (var number in list2)
  81.             {
  82.                 var stringLength = Math.Abs(number).ToString();  //Search for biggest digits in list2
  83.                 if (stringLength.Length < maxDigits)
  84.                 {
  85.                     maxDigits = stringLength.Length;
  86.                 }
  87.             }
  88.             return maxDigits;
  89.          }
  90.      }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement