diff --git a/include/solution/2716.h b/include/solution/2716.h new file mode 100644 index 0000000..883392a --- /dev/null +++ b/include/solution/2716.h @@ -0,0 +1,15 @@ +// +// Created by xfj12 on 2025/3/28. +// + +#ifndef INC_2716_H +#define INC_2716_H +#ifdef __cplusplus +extern "C" +{ +#endif + int minimizedStringLength(char *s); +#ifdef __cplusplus +} +#endif +#endif // INC_2716_H diff --git a/src/2716.c b/src/2716.c new file mode 100644 index 0000000..9d9b105 --- /dev/null +++ b/src/2716.c @@ -0,0 +1,26 @@ +// +// Created by xfj12 on 2025/3/28. +// +#include +#include +#include +#include + +int minimizedStringLength(char *s) +{ + int n = strlen(s); + int size = 0; + char *temp = malloc(n); + for (int i = 0; i < n; i++) + { + bool flag = true; + for (int j = 0; j < size && flag; j++) + if (s[i] == temp[j]) + flag = false; + if (flag) + temp[size++] = s[i]; + } + + free(temp); + return size; +} diff --git a/tests/test_2716.cpp b/tests/test_2716.cpp new file mode 100644 index 0000000..d2f0aa5 --- /dev/null +++ b/tests/test_2716.cpp @@ -0,0 +1,34 @@ +#include +#include + +// 测试用例 1 +TEST(MinimizedStringLengthTest, Test1) +{ + char s[] = "aaabc"; + int expected = 3; + EXPECT_EQ(minimizedStringLength(s), expected); +} + +// 测试用例 2 +TEST(MinimizedStringLengthTest, Test2) +{ + char s[] = "cbbd"; + int expected = 3; + EXPECT_EQ(minimizedStringLength(s), expected); +} + +// 测试用例 3 +TEST(MinimizedStringLengthTest, Test3) +{ + char s[] = "dddaaa"; + int expected = 2; + EXPECT_EQ(minimizedStringLength(s), expected); +} + +// 测试用例 4 +TEST(MinimizedStringLengthTest, Test4) +{ + char s[] = "baadccab"; + int expected = 4; + EXPECT_EQ(minimizedStringLength(s), expected); +} \ No newline at end of file