LeetCode交替合并字符串

100 篇文章 2 订阅

交替合并字符串

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

返回 合并后的字符串 。

示例 1:

输入:word1 = “abc”, word2 = “pqr”
输出:“apbqcr”
解释:字符串合并情况如下所示:
word1: a b c
word2: p q r
合并后: a p b q c r

来源:力扣(LeetCode)

首先思路一定要清晰,就是新建一个字符数组,将两个字符串的元素依次添加进去,但是卡住的地方是什么时候添加结束,以及每次添加之后下标索引值要加1。
最终的字符数组a的长度一定是两个字符串长度的和,i是数组的下标索引值,每次添加元素之后都要i++,j是记录字符串的索引。
循环结束的条件是字符数组已经存储两个最短字符串长度的元素,剩下的元素就要比较看哪个字符串更长,就依次复制即可。
使用这种方法,一定一定要注意两个下标。

class Solution {
    public String mergeAlternately(String word1, String word2) {
        char[] a  = new char[word1.length()+word2.length()];
        int i=0,j=0;
        int min = word1.length()>=word2.length()?word2.length():word1.length();
       
            for(i=0,j=0;i<min*2;j++){
                if(j<min){
                a[i++]=word1.charAt(j);
                a[i++]=word2.charAt(j);}
            }
            while(j<word1.length()){
                a[i++]=word1.charAt(j);
                j++;
            }
            while(j<word2.length()){
                a[i++]=word2.charAt(j);
                j++;
            }
        return new String(a);
    }
}

这个题一定要弄清,字符数组以及两个字符串之间的关系,添加的限制条件。
最后返回的时候将字符数组转换为字符串类型。

今日的每日一题倒是不难,就是得想清楚,注意细节,当程序出错了,要把自己当成计算机走一遍程序才知道哪里出错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值