add: 230404

This commit is contained in:
Eatswap 2023-04-05 01:01:55 +08:00
parent fe2a0b6707
commit c79ce48e37
Signed by: Eatswap
GPG Key ID: BE661106A1F3FA0B
2 changed files with 30 additions and 1 deletions

29
cpp/2304/230404.cpp Normal file
View File

@ -0,0 +1,29 @@
#include <string>
#include <iostream>
/**
* 2405. Optimal Partition of String
*
* Given a string s, partition the string into one or more substrings such that the characters in each substring are unique. That is, no letter appears in a single substring more than once.
* Return the minimum number of substrings in such a partition.
* Note that each character should belong to exactly one substring in a partition.
*/
class Solution {
public:
static int partitionString(const std::string& s) {
int set = 0, ans = 0;
for (auto&& ch : s) {
if (int c = 1 << (ch - 'a'); set & c) {
set = c;
++ans;
} else set |= c;
}
return ans + !!set;
}
};
int main() {
std::cout << Solution::partitionString("abacaba");
return 0;
}

View File

@ -4,4 +4,4 @@ PROJECT(2304)
SET(CMAKE_CXX_STANDARD 23)
SET(CMAKE_EXPORT_COMPILE_COMMANDS true)
ADD_EXECUTABLE(2304 230404-CN.cpp)
ADD_EXECUTABLE(2304 230404.cpp)