-
Code //Given 2 Arrays, Return True if arrays contain common item, else false. //e.g a= ['a','b','g','c'] and b =['z','e','c'] returns true //input : 2 arrays //output: bool using System.Collections.Generic; using System.Linq; public class Kata { public static bool ContainsCommonItem(char[] a, char[] b) { return a != null ? b != null ? new List<char>(a).Intersect(new List<char>(b)).Count() > 0 : false: false; } }
Test Cases namespace Solution { using NUnit.Framework; using System; // TODO: Replace examples and use TDD by writing your own tests [TestFixture] public class SolutionTest { char[] abc; char[] bcd; char[] xyz; [SetUp] public void BeforeEachTest() { this.abc = new[]{'a','b','c'}; this.bcd = new[]{'b','c','d'}; this.xyz = new[]{'x','y','z'}; } [Test] public void ReturnFalseWhen_NoIntersect() { Assert.That(Kata.ContainsCommonItem(this.abc, this.xyz), Is.False); } [TestCase(true, false)] [TestCase(false, true)] [TestCase(true, true)] public void ReturnFalseWhen_ArraysAreEmpty(bool clearA, bool clearB) { Assert.That(Kata.ContainsCommonItem(clearA ? new char[0] : this.abc, clearB ? new char[0] : this.abc), Is.False); } [TestCase(true, false)] [TestCase(false, true)] [TestCase(true, true)] public void ReturnFalseWhen_ArraysAreNull(bool clearA, bool clearB) { Assert.That(Kata.ContainsCommonItem(clearA ? null : this.abc, clearB ? null : this.abc), Is.False); } [Test] public void ReturnTrueWhen_ArraysAreEqual(){ Assert.That(Kata.ContainsCommonItem(this.abc, this.abc), Is.True); Assert.That(Kata.ContainsCommonItem(this.bcd, this.bcd), Is.True); Assert.That(Kata.ContainsCommonItem(this.xyz, this.xyz), Is.True); } [Test] public void ReturnTrueWhen_ArraysHaveIntersect() { Assert.That(Kata.ContainsCommonItem(this.abc, this.abc), Is.True); Assert.That(Kata.ContainsCommonItem(this.abc, this.bcd), Is.True); } } }
Output:
-
Code - //Given 2 Arrays, Return True if arrays contain common item, else false.
- //e.g a= ['a','b','g','c'] and b =['z','e','c'] returns true
- //input : 2 arrays
- //output: bool
- using System.Collections.Generic;
- using System.Linq;
public class Kata{public static bool ContainsCommonItem(char[] a, char[] b){if (!(a?.Any()??false) || !(b?.Any()??false))return false; // empty/null arrays have nothing in commonreturn a == b || ByHashSetOverlap(a, b);}private static bool ByHashSetOverlap(char[] a,char[]b)- public class Kata
- {
- public static bool ContainsCommonItem(char[] a, char[] b)
- {
HashSet<char> ha = new HashSet<char>(a);HashSet<char> hb = new HashSet<char>(b);return ha.Overlaps(hb);- return a != null ? b != null ? new List<char>(a).Intersect(new List<char>(b)).Count() > 0 : false: false;
- }
}- }
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}