2.Common Elements-Excercise
Моля Ви се помогнете! Нямам си идея как да реша задача 2.Common Elements.Ако може да ми дадете решението насоки или нещо такова,моля.
Линк към Judge: https://judge.softuni.bg/Contests/Compete/Index/1206#1
Моля Ви се помогнете! Нямам си идея как да реша задача 2.Common Elements.Ако може да ми дадете решението насоки или нещо такова,моля.
Линк към Judge: https://judge.softuni.bg/Contests/Compete/Index/1206#1
Трябва да обходиш двата масива с вложен цикъл и да сравниш дали елементите от втория са равни на елементите от първия.
Примерно решение: https://pastebin.com/WQJcaBZf
Това е моето решение на задачата. Добър вариант е и с List, но в началото на Fundamentals още не са взети:
Ето и моето решение. :)
using System;
namespace CommonElements
{
class Program
{
static void Main(string[] args)
{
string[] firstCollection = Console.ReadLine().Split(" ");
string[] secondCollection = Console.ReadLine().Split(" ");
for (int k = 0; k < secondCollection.Length; k++)
{
for (int i = 0; i < firstCollection.Length; i++)
{
if (firstCollection[i] == secondCollection[k] &&
firstCollection[i] != null && secondCollection[k] != null)
{
Console.Write(firstCollection[i] + " ");
firstCollection[i] = null;
secondCollection[k] = null;
}
}
}
}
}
}
using System;
using System.Linq;
class Program {
static void Main(string[] args) {
string[] arr1 = Console.ReadLine().Split();
string[] arr2 = Console.ReadLine().Split();
foreach (string str in arr2) {
if (arr1.Contains(str)) {
Console.Write(str + " ");
}
}
}
}
Може и с комбинация от цикъл и държавен метод (да, всъщност пак има вложен цикъл :) )
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Numerics;
namespace rodilniMuki
{
class Program
{
static void Main(string[] args)
{
string[] first = Console.ReadLine()
.Split();
string[] second = Console.ReadLine()
.Split();
string result = "";
foreach (var kvp in second)
{
if (first.Contains(kvp))
{
result += " " + kvp;
//Console.Write($" {kvp}");
}
}
Console.Write($"{result.Trim()}");
}
}
}
Заб: Решението ми не е елегантно в частта с интевалите между принтираните съвпадащи елементи.
Ако се използва :
foreach (var kvp in second)
{
if (first.Contains(kvp))
{
Console.Write($" {kvp}");
}
}
се получава празен интервал преди първия отпечатан елемент.
Вариант е да се използва Console.Write($"{kvp} "), при което се получава празен интервал след последния отпечатан елемент (и Джъджа може да не го "забележи").
Друг начин е съвпаденията да се аддват към лист, но това не е редно - задачата е за масиви.