YB
Size: a a a
YB
YB
PO
PO
YB

PO
YB
YB
YB
YB
YB
static std::tuple<std::string_view,std::vector<std::string>*> capture;
capture = {digits, &result};
using backtrack_t = void(&)(size_t, std::string&&);
static backtrack_t backtrack = *[](size_t i, std::string&& currentString) {
auto&& [digits, resultPtr] = capture;
auto&& result = *resultPtr;
if (std::size(currentString) == std::size(digits))
{
result.emplace_back(currentString);
return;
}
for (auto c : digitToCharArray[digits[i] - '0'])
{
auto&& newCurrentString = currentString + c;
backtrack(i + 1, std::move(newCurrentString));
}
};
YB
YB
YB
YB
using backtrack_t = void(&)(size_t, std::string&&, std::string_view, std::vector<std::string>&);
static backtrack_t backtrack = *[](size_t i,
std::string&& currentString,
std::string_view digits,
std::vector<std::string>& result) {
if (std::size(currentString) == std::size(digits))
{
result.emplace_back(currentString);
return;
}
for (auto c : digitToCharArray[digits[i] - '0'])
{
auto&& newCurrentString = currentString + c;
backtrack(i + 1, std::move(newCurrentString), digits, result);
}
};
YB
@N
@N
YB