LeetCode/cpp/merge-strings-alternately.cpp

39 lines
815 B
C++
Raw Permalink Normal View History

#include <cassert>
#include <string>
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;
}