skipter icon

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

skipter | PRO | 07/11/17 07:50:02 PM UTC | 0 ⭐ | 361 👁️ | Never ⏰ | []
C# |

3.26 KB

|

None

|

0 👍

/

0 👎

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _6.Stuck_Zipper
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> firstList = Console.ReadLine()
                .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(int.Parse)
                .ToList();
            List<int> secondList = Console.ReadLine()
                .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(int.Parse)
                .ToList();
            //  var minNumberInList = FindMinDigits(firstList, secondList);
            var result = ListUnited(firstList, secondList);
            Console.WriteLine(string.Join(" ", result));
        }
        private static List<int> ListUnited (List<int> list1, List<int> list2)
        {
            var firstListResult = new List<int>();
            var secondListResult = new List<int>();
            var resultList = new List<int>();
            
           foreach (var number in list1) // adding smallest nums in new list
            {
                    var stringNumber = Math.Abs(number).ToString();
 
                    if (stringNumber.Length == FindMinDigits(list1, list2))
                    {
                        firstListResult.Add(number);
                    }
                }
            foreach (var number in list2) // adding smallest nums in new list
            {
                var stringNumber = Math.Abs(number).ToString();
 
                if (stringNumber.Length == FindMinDigits(list1, list2))
                {
                    secondListResult.Add(number);
                }
            }
            var totalLength = firstListResult.Count + secondListResult.Count;
            for (int cnt = 0; cnt < totalLength; cnt++)
            {
                var firstListNumber = 0;
                var secondListNumber = 0;
 
                if (secondListResult.Count > cnt)
                {
                    secondListNumber = secondListResult[cnt];
                    resultList.Add(secondListNumber);
                }
                if (firstListResult.Count > cnt)
                {
                    firstListNumber = firstListResult[cnt];
                    resultList.Add(firstListNumber);
                }
            }
            return resultList;
        }
        
        private static int FindMinDigits (List<int> list1, List<int> list2)
        {
            var maxDigits = int.MaxValue;
            foreach (var number in list1)
            {
                var stringLength = Math.Abs(number).ToString(); //Search for biggest digits in list1
                if (stringLength.Length < maxDigits)
                {
                    maxDigits = stringLength.Length;
                }
            }
            foreach (var number in list2)
            {
                var stringLength = Math.Abs(number).ToString();  //Search for biggest digits in list2
                if (stringLength.Length < maxDigits)
                {
                    maxDigits = stringLength.Length;
                }
            }
            return maxDigits;
         }
     }
}

Comments