Loading...
anton_fotev avatar anton_fotev 9 Точки

C# 04. Mixed Up List - More Exercises

Колеги, дава ми 50/100. Пробвах с различни примерни стойности - на конзолата ми дава верни отговори.

Условието на задачата е следното:
Write a program that mixes up two lists by some rules. You will receive two lines of input, each one
being a list of numbers. The rules for mixing are:
- Start from the beginning of the first list and from the ending of the second
- Add element from the first and element from the second
- At the end there will always be a list in which there are 2 elements remaining
- These elements will be the range of the elements you need to print
- Loop through the result list and take only the elements that fulfill the condition
- Print the elements ordered in ascending order and separated by a space

Example

Input :

1 5 23 64 2 3 34 54 12
43 23 12 31 54 51 92

Output:  23 23 31 34 43 51

Comment
After looping through the two of the arrays we get:
1 92 5 51 23 54 64 31 2 12 3 23 34 43
The constrains are 54 and 12 (so we take only the numbers between them):
51 23 31 23 34 43
We print the result sorted

Кодът ми е следния:

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        List<int> firstInput = Console.ReadLine()
            .Split(new[]{' ', ','}, StringSplitOptions.RemoveEmptyEntries)
            .Select(int.Parse)
            .ToList();
        
        List<int> secondInput = Console.ReadLine()
            .Split(new[]{' ', ','}, StringSplitOptions.RemoveEmptyEntries)
            .Select(int.Parse)
            .ToList();
        
        List<int> mixed = MakeMixedList(firstInput, secondInput);
        
        int minBorder = CheckRigthListAndMin(firstInput, secondInput);
         int maxBorder = CheckRigthListAndMax(firstInput, secondInput);
        
        List<int> rezult = MakeRezultList(mixed, minBorder, maxBorder);
        
        Console.WriteLine(string.Join(" ", rezult));
        

    }
    
     public static int CheckRigthListAndMin(List<int> firstInput, List<int> secondInput)
      {
        if(firstInput.Count > secondInput.Count)
        {
             return Math.Min(firstInput[firstInput.Count -1], firstInput[firstInput.Count -2]);
        }
        else
        {
            return Math.Min(secondInput[secondInput.Count -1], secondInput[secondInput.Count -2]);
        }
      }
    
     public static int CheckRigthListAndMax(List<int> firstInput, List<int> secondInput)
      {
        if(firstInput.Count > secondInput.Count)
        {
             return Math.Max(firstInput[firstInput.Count -1], firstInput[firstInput.Count -2]);
        }
        else
        {
            return Math.Max(secondInput[secondInput.Count -1], secondInput[secondInput.Count -2]);
        }
      }
    
      public static List<int> MakeMixedList(List<int> firstInput, List<int> secondInput)
      {
          List<int> mixed = new List<int>();
          
          if (firstInput.Count > secondInput.Count)
          {
           secondInput.Reverse();
              
           for (int i = 0; i < secondInput.Count; i++)
           {
            mixed.Add(firstInput[i]);
            mixed.Add(secondInput[i]);    
           }
          } // end if
          else
          {
           firstInput.Reverse();
              
           for (int i = 0; i < firstInput.Count; i++)
           {
            mixed.Add(secondInput[i]);
            mixed.Add(firstInput[i]);        
           }  
          } // end else
          
        return mixed;      
      }
    
    public static List <int> MakeRezultList(List<int> mixed, int minBorder, int maxBorder)
    {
         List<int> rezult = mixed
            .Where(x => (minBorder < x && x < maxBorder))
            .OrderBy(x => x)
            .ToList();
        
        return rezult;
    }
}

Тагове:
0
Teamwork and Personal Skills
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.