Пересечение двух массивов с заданным условием - C#
Формулировка задачи:
Добрый день!
Есть 2 массива типа string. Нужно вернуть индексы элементов первого массива, в элементах которого содержатся элементы второго массива.
Разумеется, прогонять двойной цикл не целесообразно.
Думал в сторону Linq и регулярных выражений, но пока не смог ни к чему придти.
Подскажите, в какую сторону двигаться
Решение задачи: «Пересечение двух массивов с заданным условием»
textual
Листинг программы
- static IEnumerable<int> FindIntersection(string[] left, string[] right, Func<string, string, bool> predicate) {
- var result = new List<int>();
- for (int i = 0; i < left.Length; i++) {
- for (int j = 0; j < right.Length; j++) {
- if (!result.Contains(i) && predicate(left[i], right[j])) {
- result.Add(i);
- }
- }
- }
- return result;
- }
- var a1 = new[] { "ab", "c", "b" };
- var a2 = new[] { "a", "b", "cc" };
- var result = FindIntersection(a1, a2, (l, r) => l.Contains(r));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д