每日力扣-交替合并字符串

90 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情

每日力扣是一个专门用来讲力扣中国每天发布的每日一题的栏目。本专栏不提供题目的解答源码,只讲解思路,目的是养成每日刷题、提高自己手感,从而达到算法熟练的目标。

题目(已做删减处理)

给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。

分析

一道常见的模拟题目。没有太多的变换,我们直接按照题目的要求进行解答即可。首先定义两个指针i 和 j。初始化的时候分别指向两个字符串的首个字符所在的位置。然后对字符串进行遍历:

  • 如果 i 没有超过 word1 的范围,那么就将 word1[i] 的字符放入最后的字符串中,然后将i++,向后移动一个位置;
  • 如果 j 没有超过 word2 的范围,那么就将 word2[j]的字符放入最后的字符串中,然后将j++,向后移动一位位置。 如果 i 和 j 任意一个超过对应的字符串的长度,那么停止循环,将接下来的数据存入到最后的字符串中即可。

总结

一道很简单的模拟题。这道题目中用到了我们常见的双指针知识点。对于刚学习算法的同学来说,并没有什么难度。而且相较于之前我们学习的算法题目来说,这道题目难得没有任何歧义,也就是说你完全可以通过题目,很快想到对应的知识点。

我建议学习算法的同学都认真学习一下这道题目的解题思路。达到举一反三的效果。

解题证明

image.png