> For the complete documentation index, see [llms.txt](https://private-26.gitbook.io/notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://private-26.gitbook.io/notes/coding/easy/1768.-merge-strings-alternately.md).

# 1768. Merge Strings Alternately

\#array #string

Given two strings merge the strings by adding letters in alternating order, starting with `word1`. If a string is longer than the other, append the additional letters onto the end of the merged string.

***

### Intuition

* Iterate and keep adding characters from the string alternatively

### Approach

* Iterate and add character alternatively till we reach the end of the string  word1​ or word2​
* Add the remaining character as it is

### Complexity

* **Time complexity** : O(m+n)
  * where the m,n are the length of the string word1​ & word2​
* **Space complexity** : O(m+n)
  * we store the merged string

### Code

```java
public String mergeAlternately(String word1, String word2) {
	if(word1.length() == 1) return word1+word2;        

	StringBuilder mergedString = new StringBuilder();
	int i = 0, j = 0;
	for (; i < word1.length() && j < word2.length();) {
		mergedString.append(word1.charAt(i++));
		mergedString.append(word2.charAt(j++));
	}

	
	if(word1.length() > i) { 
		mergedString.append(word1.substring(j,word1.length()));
		return mergedString.toString();
	}
	if(word2.length() > j) { 
		mergedString.append(word2.substring(j,word2.length()));
		return mergedString.toString();
	}

	return mergedString.toString();
}
```
