# Consecutive strings [6 kyu]
[Consecutive strings](https://www.codewars.com/kata/56a5d994ac971f1ac500003e)
6 kyu
## Solution
```cpp=
/**
*** Author: R-CO
*** E-Mail: daniel1820kobe@gmail.com
*** Date: 2020-08-06
**/
#include <cstdlib>
#include <iostream>
using std::cout;
using std::endl;
#include <string>
#include <vector>
struct TestCaseStruct {
struct Input {
std::vector<std::string> strarr;
int k;
} input;
std::string expected_output;
};
class LongestConsec {
public:
static std::string longestConsec(std::vector<std::string> &strarr, int k) {
const auto n = strarr.size();
if (n == 0 || n < k || k <= 0) {
return "";
}
std::string output;
size_t head = 0;
size_t max_sum = 0;
size_t current_sum = 0;
for (auto i = 0; i < k; ++i) {
current_sum += strarr[i].size();
}
max_sum = current_sum;
const size_t kMaxHead = n - k;
for (auto i = 1; i <= kMaxHead; ++i) {
current_sum =
current_sum - strarr[i - 1].size() + strarr[i - 1 + k].size();
if (current_sum > max_sum) {
max_sum = current_sum;
head = i;
}
}
const size_t kTail = head - 1 + k;
for (auto i = head; i <= kTail; ++i) {
output += strarr[i];
}
return output;
}
};
int main(int argc, char *argv[]) {
/*
std::vector<std::string> arr = {"zone", "abigail", "theta", "form", "libe",
"zas", "theta", "abigail"}; dotest(arr, 2, "abigailtheta"); arr =
{"ejjjjmmtthh", "zxxuueeg", "aanlljrrrxx", "dqqqaaabbb",
"oocccffuucccjjjkkkjyyyeehh"}; dotest(arr, 1, "oocccffuucccjjjkkkjyyyeehh");
*/
TestCaseStruct test_cases[] = {
{{{"zone", "abigail", "theta", "form", "libe", "zas", "theta", "abigail"},
2},
"abigailtheta"},
{{{"ejjjjmmtthh", "zxxuueeg", "aanlljrrrxx", "dqqqaaabbb",
"oocccffuucccjjjkkkjyyyeehh"},
1},
"oocccffuucccjjjkkkjyyyeehh"}};
LongestConsec solution;
for (auto &test_case : test_cases) {
if (solution.longestConsec(test_case.input.strarr, test_case.input.k) ==
test_case.expected_output) {
cout << "test case \"" << test_case.expected_output << "\" is pass."
<< std::endl;
} else {
cout << "test case \"" << test_case.expected_output << "\" is fail."
<< std::endl;
}
}
return EXIT_SUCCESS;
}
```
## Result

###### tags: `CodeWars` `C++`