コード例 #1
0
        public void TestIterative()
        {
            var sol  = new BinaryTreeLevelOrderTraversal();
            var root = new TreeNode(3)
            {
                left  = new TreeNode(9),
                right = new TreeNode(20)
                {
                    left  = new TreeNode(15),
                    right = new TreeNode(7)
                }
            };
            var ret = sol.LevelOrder(root);
            IList <IList <int> > expected = new List <IList <int> >();

            expected.Add(new List <int>()
            {
                3
            });
            expected.Add(new List <int>()
            {
                9, 20
            });
            expected.Add(new List <int>()
            {
                15, 7
            });
            Utlilitiy.AssertAreEqual(expected, ret);
        }
コード例 #2
0
        public void Test1()
        {
            var sol = new CombinationsSol();
            var res = sol.Combine(4, 2);

            Utlilitiy.AssertAreEqual(
                new List <IList <int> >()
            {
                new List <int>()
                {
                    1, 2
                },
                new List <int> {
                    1, 3
                },
                new List <int> {
                    1, 4
                },
                new List <int> {
                    2, 3
                },
                new List <int> {
                    2, 4
                },
                new List <int> {
                    3, 4
                }
            },
                res);
        }
        public void Test1()
        {
            var sol  = new BinaryTreeVerticalOrderTraversal();
            var root = new TreeNode(3)
            {
                left  = new TreeNode(9),
                right = new TreeNode(20)
                {
                    left  = new TreeNode(15),
                    right = new TreeNode(7)
                }
            };
            var ret = sol.VerticalOrder(root);
            IList <IList <int> > expected = new List <IList <int> >();

            expected.Add(new List <int>()
            {
                9
            });
            expected.Add(new List <int>()
            {
                3, 15
            });
            expected.Add(new List <int>()
            {
                20
            });
            expected.Add(new List <int>()
            {
                7
            });
            Utlilitiy.AssertAreEqual(expected, ret);
        }
コード例 #4
0
        public void Test1()
        {
            var sol      = new CombinationSumSol();
            var res      = sol.CombinationSum(new[] { 2, 3, 6, 7 }, 7);
            var expected = new List <IList <int> > {
                new List <int>()
                {
                    7
                }, new List <int>()
                {
                    2, 2, 3
                }
            };

            Utlilitiy.AssertAreEqualIgnoreOrder(expected, res);
        }
コード例 #5
0
        public void Test1()
        {
            var sol      = new NQueens();
            var res      = sol.SolveNQueens(4);
            var expected = new List <IList <string> >()
            {
                new List <string>()
                {
                    ".Q..", "...Q", "Q...", "..Q."
                },
                new List <string>()
                {
                    "..Q.", "Q...", "...Q", ".Q.."
                },
            };

            Utlilitiy.AssertAreEqualIgnoreOrder(expected, res);
        }
コード例 #6
0
        public void Test3()
        {
            var ladder = new WordLadder2Sol2();
            var res    = ladder.FindLadders(
                "lost",
                "miss",
                new List <string>()
            {
                "most", "mist", "miss", "lost", "fist", "fish"
            });
            IList <IList <string> > expected = new List <IList <string> >();

            expected.Add(new List <string>()
            {
                "lost", "most", "mist", "miss"
            });
            Utlilitiy.AssertAreEqual(expected, res);
        }
コード例 #7
0
        public void Test1()
        {
            var ladder = new WordLadder2Sol2();
            var res    = ladder.FindLadders("hit", "cog", new List <string>()
            {
                "hot", "dot", "dog", "lot", "log", "cog"
            });
            IList <IList <string> > expected = new List <IList <string> >();

            expected.Add(new List <string>()
            {
                "hit", "hot", "dot", "dog", "cog"
            });
            expected.Add(new List <string>()
            {
                "hit", "hot", "lot", "log", "cog"
            });
            Utlilitiy.AssertAreEqual(expected, res);
        }
コード例 #8
0
        public void Test1()
        {
            var sol      = new PalindromePartitioning();
            var res      = sol.Partition("abba");
            var expected =
                new List <IList <string> >()
            {
                new List <string>()
                {
                    "a", "b", "b", "a"
                }, new List <string>()
                {
                    "a", "bb", "a"
                }, new List <string>()
                {
                    "abba"
                }
            };

            Utlilitiy.AssertAreEqual(expected, res);
        }
コード例 #9
0
        public void Test1()
        {
            var sol  = new BinaryTreeZigzagLevelOrderTraversal();
            var root = new TreeNode(3)
            {
                left = new TreeNode(9)
                {
                    left =
                        new TreeNode(4)
                    {
                        left  = new TreeNode(8),
                        right = new TreeNode(9)
                    },
                    right = new TreeNode(5)
                    {
                        left =
                            new TreeNode(7),
                        right = new TreeNode(
                            12)
                    }
                },
                right = new TreeNode(20)
                {
                    left =
                        new TreeNode(15)
                    {
                        left =
                            new TreeNode(45),
                        right = new TreeNode(
                            23)
                    },
                    right = new TreeNode(7)
                    {
                        left = new TreeNode(
                            48),
                        right =
                            new TreeNode(50)
                    }
                }
            };
            var ret = sol.ZigzagLevelOrder(root);
            IList <IList <int> > expected = new List <IList <int> >();

            expected.Add(new List <int>()
            {
                3
            });
            expected.Add(new List <int>()
            {
                20, 9
            });
            expected.Add(new List <int>()
            {
                4, 5, 15, 7
            });
            expected.Add(new List <int>()
            {
                50, 48, 23, 45, 12, 7, 9, 8
            });
            Utlilitiy.AssertAreEqual(expected, ret);
        }
コード例 #10
0
        public void Test4()
        {
            var ladder = new WordLadder2Sol2();
            var res    = ladder.FindLadders(
                "qa",
                "sq",
                new List <string>()
            {
                "si", "go", "se", "cm", "so", "ph", "mt", "db", "mb", "sb", "kr", "ln", "tm", "le", "av", "sm", "ar", "ci", "ca", "br", "ti", "ba", "to", "ra", "fa", "yo", "ow", "sn", "ya", "cr", "po", "fe", "ho", "ma", "re", "or", "rn", "au", "ur", "rh", "sr", "tc", "lt", "lo", "as", "fr", "nb", "yb", "if", "pb", "ge", "th", "pm", "rb", "sh", "co", "ga", "li", "ha", "hz", "no", "bi", "di", "hi", "qa", "pi", "os", "uh", "wm", "an", "me", "mo", "na", "la", "st", "er", "sc", "ne", "mn", "mi", "am", "ex", "pt", "io", "be", "fm", "ta", "tb", "ni", "mr", "pa", "he", "lr", "sq", "ye"
            });
            IList <IList <string> > expected = new List <IList <string> >();

            expected.Add(new List <string>()
            {
                "qa", "ba", "be", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ba", "bi", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ba", "br", "sr", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ca", "cm", "sm", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ca", "co", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "la", "ln", "sn", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "la", "lt", "st", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "mb", "sb", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "pa", "ph", "sh", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ta", "tc", "sc", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "fa", "fe", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ga", "ge", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ha", "he", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "la", "le", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "me", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "na", "ne", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ra", "re", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ya", "ye", "se", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ca", "ci", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ha", "hi", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "la", "li", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "mi", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "na", "ni", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "pa", "pi", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ta", "ti", "si", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ca", "cr", "sr", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "fa", "fr", "sr", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "la", "lr", "sr", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "mr", "sr", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "fa", "fm", "sm", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "pa", "pm", "sm", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ta", "tm", "sm", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ga", "go", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ha", "ho", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "la", "lo", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "mo", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "na", "no", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "pa", "po", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ta", "to", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ya", "yo", "so", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "mn", "sn", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ra", "rn", "sn", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ma", "mt", "st", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "pa", "pt", "st", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "na", "nb", "sb", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "pa", "pb", "sb", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ra", "rb", "sb", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ta", "tb", "sb", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ya", "yb", "sb", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ra", "rh", "sh", "sq"
            });
            expected.Add(new List <string>()
            {
                "qa", "ta", "th", "sh", "sq"
            });
            Utlilitiy.AssertAreEqualIgnoreOrder(expected, res);
        }