Kriss_7777

ВИДИН_Модул-02_Упр-04_файл-18

Mar 8th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.85 KB | None | 0 0
  1. //  ВИДИН - МОДУЛ_02; Упражнение 04 ; DOC-ФАЙЛ 18;
  2.  
  3. using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7.  
  8. namespace Upr_04_DOC_18
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.  
  15.             /*
  16.  
  17.                     // -------------------------------------------------------------------------------------------
  18.                     // ЗАДАЧА 1.  Сума на съседни еднакви числа ------------------------------------------------
  19.  
  20.                     List<int> myList1 = Console.ReadLine().
  21.                                                    Split(" ").
  22.                                                    Select(int.Parse).
  23.                                                    ToList();
  24.  
  25.                     int i = 0;
  26.  
  27.                     while (myList1.Count > 2 && i < myList1.Count-1)
  28.                     {
  29.                         if (myList1[i] == myList1[i+1])
  30.                         {
  31.                             myList1[i] = myList1[i] + myList1[i + 1];
  32.                             myList1.RemoveAt(i+1);
  33.                             i=-1;
  34.  
  35.                             Console.WriteLine(String.Join(" ", myList1));// За текущ контрол на сисъка (не се изисква в задачата)
  36.                         }
  37.  
  38.                         i++;
  39.  
  40.                     }
  41.  
  42.                     Console.WriteLine();
  43.                     Console.WriteLine(String.Join(" ", myList1));
  44.  
  45.  
  46.                     // ЗА ПРОВЕРКА НА КОДА :
  47.                     // 8 2 2 4 8 16 ---> 16 8 16
  48.                     // 3 3 6 1      ---> 12 1
  49.                     // 5 4 2 1 1 4  ---> 5 8 4
  50.                     // 7 5 5 10 8 8 16 16 -> 7 10 10 8 8 16 16 -> 7 20 8 8 16 16 -> 7 20 16 16 16 ---> 7 20 32 16
  51.  
  52.        
  53.  
  54.             // ---------------------------------------------------------------------------------------
  55.             // ЗАДАЧА 2. Отделяне по регистър на дума ------------------------------------------------
  56.  
  57.             // Полезен ресурс : https://stackoverflow.com/questions/27402126/check-if-string-have-uppercase-lowercase-and-number/27402159
  58.  
  59.             // Използвайте следните разделители между думите: , ; : . ! ( ) " ' \ / [ ] интервал
  60.             // Lower-case:
  61.             // Mixed-case:
  62.             // Upper-case:
  63.  
  64.             char[] splitter = new char[] { ',', ';', ':', '.', '!', '(', ')', '"', '\'', '\\', '/', '[', ']', ' ' };
  65.  
  66.             List<string> myList2 = Console.ReadLine().
  67.                                            Split(splitter, StringSplitOptions.RemoveEmptyEntries).
  68.                                            // Сплитва по който и да е от символите в масива splitter
  69.                                            //Select(int.Parse).
  70.                                            ToList();
  71.  
  72.             List<string> upperList = new List<string>();
  73.             List<string> lowerList = new List<string>();
  74.             List<string> mixedList = new List<string>();
  75.  
  76.  
  77.            // for (int i = 0; i < myList2.Count-1; i++)
  78.            // {
  79.            //    if(myList2[i].Equals(' '))
  80.            //     {
  81.            //         myList2.RemoveAt(i);
  82.            //    }
  83.  
  84.            //}
  85.  
  86.        
  87.             foreach (var myString in myList2)
  88.             {
  89.  
  90.                
  91.                 // myString.Trim(' ');
  92.                
  93.  
  94.                 // MIXED - ANY
  95.                 if ( myString.Any(char.IsUpper) && myString.Any(char.IsLower) )
  96.                 {
  97.                     mixedList.Add(myString);
  98.                 }
  99.  
  100.  
  101.                 // UPPER - ALL
  102.                 if ( myString.All(char.IsUpper) )
  103.                 {
  104.                     upperList.Add(myString);
  105.                 }
  106.  
  107.  
  108.                 //LOWER - ALL
  109.                 if ( myString.All(char.IsLower))
  110.                 {
  111.                     lowerList.Add(myString);
  112.                 }
  113.  
  114.  
  115.             }
  116.  
  117.  
  118.             Console.WriteLine("Lower-case: " + String.Join(", ", lowerList));
  119.             Console.WriteLine("Mixed-case: " + String.Join(", ", mixedList));
  120.             Console.WriteLine("Upper-case: " + String.Join(", ", upperList));
  121.  
  122.             // ПРОВЕРКА :
  123.             // Learn programming at SoftUni: Java, PHP, JS, HTML 5, CSS, Web, C#, SQL, databases, AJAX, etc.
  124.  
  125.    
  126.             // ---------------------------------------------------------------------------------------
  127.             // ЗАДАЧА 3. Променлив списък ------------------------------------------------
  128.  
  129.             char[] splitter = new char[] { ',', ';', ':', '.', '!', '(', ')', '"', '\'', '\\', '/', '[', ']', ' ' };
  130.  
  131.             List<int> myList3 = Console.ReadLine().
  132.                                            Split(splitter, StringSplitOptions.RemoveEmptyEntries).
  133.                                                 // Сплитва по който и да е от символите в масива splitter
  134.                                                 // и премахва празни елементи ако са "влезли"
  135.                                            Select(int.Parse).
  136.                                            ToList();
  137.                                            // ToArray();
  138.                                            // ToString();
  139.  
  140.             while (true)
  141.             {
  142.  
  143.                 string[] commands = Console.ReadLine().
  144.                                            Split(' ').
  145.                                            //Select(int.Parse).
  146.                                            ToArray();
  147.  
  148.                 if (commands[0].Equals("Delete"))
  149.                 {
  150.                     int temp = int.Parse(commands[1]);
  151.                  
  152.                         myList3.RemoveAll(items => items == temp);
  153.                         // Lambda израз ( items => items == temp )
  154.                         // Изтрива всички елементи които са равни
  155.                         // на подадената стойност след Delete
  156.                         // => се чете "сочи към"
  157.                 }
  158.  
  159.  
  160.                 if (commands[0].Equals("Insert"))
  161.                 {
  162.                     myList3.Insert(int.Parse(commands[2]), int.Parse(commands[1]));
  163.                                           // на кой индекс           кой елемент
  164.                 }
  165.  
  166.  
  167.                 if (commands[0].Equals("Even"))
  168.                 {
  169.                     Console.WriteLine(String.Join(" ", myList3.FindAll(item => (item % 2) == 0)));
  170.                     // Lambda израз ( items => (item % 2) == 0 ) - ЧЕТНИ
  171.                     // Извлича всички елементи които са равни
  172.                     // на зададеното условие - ЧЕТНИ ЕЛЕМЕНТИ;
  173.                     // => се чете "сочи към"
  174.                     break;
  175.                 }
  176.  
  177.  
  178.                 if (commands[0].Equals("Odd"))
  179.                 {
  180.                     Console.WriteLine(String.Join(" ", myList3.FindAll(item => (item % 2) != 0)));
  181.                     // Lambda израз ( items => (item % 2) != 0 ) - НЕЧЕТНИ
  182.                     // Извлича всички елементи които са равни
  183.                     // на зададеното условие - НЕЧЕТНИ ЕЛЕМЕНТИ;
  184.                     // => се чете "сочи към"
  185.                     break;
  186.                 }
  187.  
  188.                 // ПРОВЕРКА :
  189.                 // 20 12 4 319 21 31234 2 41 23 4
  190.                 // Insert 50 2
  191.                 // Insert 50 5
  192.                 // Delete 4
  193.                 // Even
  194.                 //
  195.                 // ОТГОВОР : 20 12 50 50 31234 2
  196.  
  197.   */
  198.  
  199.             // ---------------------------------------------------------------------------------------
  200.             // ЗАДАЧА 4. Търсене на число ------------------------------------------------
  201.  
  202.             char[] splitter = new char[] { ',', ';', ':', '.', '!', '(', ')', '"', '\'', '\\', '/', '[', ']', ' ' };
  203.  
  204.             // Въвеждане на поредица от числа в списък
  205.             List<int> myList4 = Console.ReadLine().
  206.                                         Split(splitter, StringSplitOptions.RemoveEmptyEntries).
  207.                                                 // Сплитва по който и да е от символите в масива splitter
  208.                                                 // StringSplitOptions.RemoveEmptyEntries - премахва празни елемнти
  209.                                         Select(int.Parse).
  210.                                         ToList();
  211.                                         // ToArray();
  212.                                         // ToString();
  213.                                            
  214.  
  215.             // Въвеждаме 3те числа от конзолата и ги записваме в целочислен масив
  216.             int[] input = Console.ReadLine().
  217.                                            Split(splitter, StringSplitOptions.RemoveEmptyEntries).
  218.                                            Select(int.Parse).
  219.                                            // ToList();
  220.                                            ToArray();
  221.                                            // ToString();
  222.  
  223.  
  224.             int itemsToTake     = input[0]; // P
  225.             int itemsToDelete   = input[1]; // Q
  226.             int numberToSearch  = input[2]; // R
  227.  
  228.             myList4 = myList4.Take(itemsToTake).ToList(); // Взима първите P елемента
  229.             myList4.RemoveRange(0, itemsToDelete);        // Премахва първите Q елемента, започвайки от индекс 0;
  230.  
  231.  
  232.             if (myList4.Contains(numberToSearch)) // Проверява дали R го има в списъка
  233.             {
  234.                 Console.WriteLine("YES!");
  235.             }
  236.             else
  237.             {
  238.                 Console.WriteLine("NO!");
  239.             }
  240.            
  241.  
  242.             Console.WriteLine(String.Join(" ", myList4)); // Разпечатва какво е останало - НЕ СЕ ИЗИСКА ПО ЗАДАНИЕ
  243.  
  244.  
  245.             // ПРОВЕРКА :
  246.             // 12 412 123 21 654 34 65 3 23
  247.             // 7 4 21                           РЕЗУЛТАТ : NO!
  248.  
  249.  
  250.  
  251.  
  252.             // ---------------------------------------------------------------------------------------------
  253.             // ЗАДАЧА 5.**  Най-дълга нарастваще подредица (Longest Increasing Subsequence - LIS) ----------
  254.  
  255.             // ... to be continued ...
  256.  
  257.  
  258.  
  259.         }
  260.     }
  261. }
Add Comment
Please, Sign In to add comment