算法编程(三十):交替合并字符串

简介: 算法编程(三十):交替合并字符串

写在前面


今天的这道题,《交替合并字符串》,是针对两个字符串组合的一道题目。

在之前我们做过拆分,也做过拆分并组合,下面就一起来看看怎么直接组合两个字符串吧。

image.png

题目解读


根据本题的描述来看,是有两个字符串,最后的结果是想要将两个字符串合并在一起,合并规则是隔位插入字符。

多出来的字符紧跟在字符串最后即可。

了解清楚题目,下面我们来说一下解题思路。

我们可以直接使用StringBuilder中的insert方法来直接插入,在这个过程中我们就只需要提供插入的字符,和插入的位置即可。

当然了,还是通过循环才可以,每次循环都越过一位来插入,保证是在奇数位下标索引下插入字符。

下面就来看一下代码的编写吧。

代码实现


本次代码如下所示,大家可以自行参考一下。

public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.mergeAlternately("abc", "pqr"));
        System.out.println(solution.mergeAlternately("abcd", "pq"));
    }
    public String mergeAlternately(String word1, String word2) {
        StringBuilder stringBuilder = new StringBuilder(word1);
        int index = -1;
        for (int i = 1; i < stringBuilder.length(); i = i + 2) {
            if(++index < word2.length()){
                stringBuilder.insert(i, word2.charAt(index));
            }
        }
        if(index < word2.length() - 1){
            stringBuilder.append(word2.substring(index + 1));
        }
        return stringBuilder.toString();
    }
}

代码执行结果


本次的代码执行结果很一般,但总算是解决了,这道题要是自己来拼接的话,还能提升一下效率。

image.png

其他思路


其他思路就是拼接字符的地方不使用Java提供的方法来插入,自行实现拼接应该会更好一些。

总结


本道题主要考察对多个字符串拼接的掌握程度,只要熟悉如何定位字符串中的每一个字符位置就可以解出这道题了。


相关文章
|
2月前
|
算法
【优选算法】—— 字符串匹配算法
【优选算法】—— 字符串匹配算法
|
3月前
|
人工智能 算法 测试技术
【动态规划】【字符串】【C++算法】940. 不同的子序列 II
【动态规划】【字符串】【C++算法】940. 不同的子序列 II
|
3月前
|
算法 数据安全/隐私保护
火山中文编程 -- MD5算法和SHA算法
火山中文编程 -- MD5算法和SHA算法
20 0
火山中文编程 -- MD5算法和SHA算法
|
4月前
|
算法 测试技术 C#
【动态规划】【字符串】C++算法:正则表达式匹配
【动态规划】【字符串】C++算法:正则表达式匹配
|
4月前
|
机器学习/深度学习 算法
机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习]Bagging算法的编程实现
35 1
|
3月前
|
机器学习/深度学习 算法 C语言
【编码狂想】深度探索C++编程之旅:“数组、字符串、函数与KMP算法解密“
【编码狂想】深度探索C++编程之旅:“数组、字符串、函数与KMP算法解密“
74 0
|
21天前
|
算法
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
24 1
|
1月前
|
算法
【算法学习--字符串】(不含KMP算法)
【算法学习--字符串】(不含KMP算法)
|
2月前
|
存储 算法 JavaScript
Java入门高频考查算法逻辑基础知识3-编程篇(超详细18题1.8万字参考编程实现)
解决这类问题时,建议采取下面的步骤: 理解数学原理:确保你懂得基本的数学公式和法则,这对于制定解决方案至关重要。 优化算法:了解时间复杂度和空间复杂度,并寻找优化的机会。特别注意避免不必要的重复计算。 代码实践:多编写实践代码,并确保你的代码是高效、清晰且稳健的。 错误检查和测试:要为你的代码编写测试案例,测试标准的、边缘情况以及异常输入。 进行复杂问题简化:面对复杂的问题时,先尝试简化问题,然后逐步分析和解决。 沟通和解释:在编写代码的时候清晰地沟通你的思路,不仅要写出正确的代码,还要能向面试官解释你的
35 0
|
2月前
|
存储 算法 JavaScript
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(二)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
32 0