#include #include class MaximumGainTest : public ::testing::Test { protected: void AssertMaximumGain(const std::string &input, int x, int y, int expected) { char *s = strdup(input.c_str()); // 复制字符串,防止修改原始数据 int result = maximumGain(s, x, y); ASSERT_EQ(result, expected); free(s); } }; // 示例 1 TEST_F(MaximumGainTest, Example1) { // 输入:s = "cdbcbbaaabab", x = 4, y = 5 // 输出:19 AssertMaximumGain("cdbcbbaaabab", 4, 5, 19); } // 示例 2 TEST_F(MaximumGainTest, Example2) { // 输入:s = "aabbaaxybbaabb", x = 5, y = 4 // 输出:20 AssertMaximumGain("aabbaaxybbaabb", 5, 4, 20); }