交替合并字符串
1.题目链接:
1768. 交替合并字符串
2.原题描述:
给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回 合并后的字符串 。
3.相关算法
本题可以使用暴力和并【时间复杂度O(m+n)空间复杂度O(n)】,由于本人暂时为想到更好的解题方式,本题解使用暴力for循环合并。
4.本题主要思路
本题主要涉及到两个字符串,先要判断哪个字符串要长一点,然后使用短的字符串进行for循环合并,长的字符串等交替和并完在追加到结果字符串的末尾,最后将结果进行返回。
5.源码分析
class Solution {
public String mergeAlternately(String word1, String word2) {
int l1 = word1.length(); // 1
int l2 = word2.length();
String result =""; // 2
if(l1>l2){ // 3
for(int i=0;i<l2;++i){
result+=word1.charAt(i);
result+=word2.charAt(i);
}
for(int i=l2;i<l1;++i){ // 4
result = result+word1.charAt(i);
}
}else{ // 5
for(int i=0;i<l1;++i){
result+=word1.charAt(i);
result+=word2.charAt(i);
}
for(int i=l1;i<l2;++i){
result = result+word2.charAt(i);
}
}
return result; // 6
}
}
- 获取字符串L1,L2的长度
- 创建一个空的字符串返回对象
- 判断两个字符串的长度,l1长则使用l2的长度进行循环合并
- 合并完短的字符串后将长的剩余部分字符串追加到返回字符串的末尾
- L2长,使用L1的长度进行遍历合并
- 最后返回结果字符串