#include "try_split_sequence.h" #include std::optional> TrySplitSequence(const std::string_view &sequence) { std::vector a_keys; for (size_t i = 0; i < sequence.size(); ++i) { if (sequence[i] == 'A') { a_keys.push_back(i); } } if (a_keys.size() < 2) { return std::nullopt; } size_t midpoint = a_keys.size() / 2 - 1; return std::make_pair(std::string_view(&(sequence[0]), a_keys[midpoint]+1), std::string_view(&(sequence[a_keys[midpoint]+1]), sequence.size() - a_keys[midpoint]-1)); }