#include #include class Solution { public: std::string mergeAlternately(const std::string &word1, const std::string &word2) { std::string result; auto l = word1.begin(); auto r = word2.begin(); for (; l != word1.end() && r != word2.end(); ++l, ++r) { result += *l; result += *r; } for (; l != word1.end(); ++l) { result += *l; } for (; r != word2.end(); ++r) { result += *r; } return result; } }; int main() { Solution s; assert(s.mergeAlternately("abc", "pqr") == "apbqcr"); assert(s.mergeAlternately("ab", "pqrs") == "apbqrs"); assert(s.mergeAlternately("abcd", "pq") == "apbqcd"); return 0; }