Leetcode第1768题
题目描述
https://leetcode.cn/problems/merge-strings-alternately/
个人思路
对于两个字符串进行交替合并,就是创建一个新的空字符串,然后把两个字符串的字符依次加入新的字符串中,最后剩余的字符直接添加到新字符串中。
public String mergeAlternately(String word1, String word2) {
int i=word1.length();
int j=word2.length();
StringBuilder temp=new StringBuilder("");
while (i !=0 && j!= 0){
temp.append(word1.charAt(word1.length()-i--));
temp.append(word2.charAt(word2.length()-j--));
}
if(i>0){
temp.append(word1.substring(word1.length()-i));
}else{
temp.append(word2.substring(word2.length()-j));
}
return temp.toString();
}
代码优化
- 原始代码是空字符串是用StringBuffer进行保存,但是由于其特性,每次操作都要加锁和解锁,其所耗时间大,所以单线程的情况下尽量使用StringBuilder,两个的操作几乎一致。
- 添加最后的剩余字符,之前使用的是for循环遍历到字符结束,但可以直接使用substring或者从当前位置开始到结束的所有字符。
参考思路
无
收获
学到了两个代码优化技巧