public void Test3()
        {
            KPalindrome kp = new KPalindrome()
            {
                S = "abbbba",
                K = 20
            };

            Assert.IsTrue(kp.Solve());
        }
        public void Test4()
        {
            KPalindrome kp = new KPalindrome()
            {
                S = "cbdxa",
                K = 1
            };

            Assert.IsFalse(kp.Solve());
        }
        public void Test1()
        {
            KPalindrome kp = new KPalindrome()
            {
                S = "abxa",
                K = 1
            };

            Assert.IsTrue(kp.Solve());
        }
        public void Test5()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append('a', 20000);
            for (int i = 0; i < 15; i++)
            {
                sb[25 * i + 20]   = 'b';
                sb[18000 - 3 * i] = 'b';
            }


            KPalindrome kp = new KPalindrome()
            {
                S = sb.ToString(),
                K = 17
            };

            Assert.IsFalse(kp.Solve());
        }