这个为啥删除不了呀????
前言
最近,在搞英语和java对应的框架啥的,都是去看b站的视频,主要是下半年大四了,就要去实习了,所以说再恶补java的框架的知识,在途中,为了跟b站的项目又去学了前端的一些框架,真的,学无止境啊。学了这么长时间突然发现算法也不能拉下,去看了之前做的力扣题,感觉有些题的解题思路已经忘记了,所以说,从今天开始,每天背单词和做一道算法题!加油,朋友们,我会更新每天的力扣算法题,有需要的可以关注我,私信我,给我留言。一起加油吧!!!
力扣1768. 交替合并字符串。 大概是这么个东西吧
一、解题思路
看到这道题的话,首先要清楚题目的意思就是给了两个字符串,两个字符串相互拼接,拼接的规则是第一个字符串的第一个字符后面跟第二个字符串的第一个字符例如:
第一个字符串:‘qwer’
第二个字符串:‘asdfg’
拼接的字符串:‘qawsedrfg’
我的思路中就有一个String类中有个方法 charAt() 通过索引去获取对应的字符,同时创建一个 StringBuilder对象,相对于String它的优点就好多了。
首先它是一个动态对象,表明它的字符串是可变的,它的字符串拼接原理是在该对象的地址后面加上要拼接的对象,不用反复的去开辟创建新的地址,节省了内存资源也提高了拼接性能,当有大量的拼接需求或者不可知的拼接次数时,推荐使用StringBuilder来进行字符串的拼接。
String拼接字符串的时候,是先将每个字符串在内存中创建出来,然后再将
字符串拼接成一个新的字符串返回。引用了这个博客===》传送门
使用 while 循环进行遍历,然后依次添加到里面,StringBuilder对象有个方法append()在末尾添加字符。
二、代码实现
class Solution {
public String mergeAlternately(String word1, String word2) {
int a = word1.length();
int b = word2.length();
StringBuilder wo = new StringBuilder();
int i = 0,j = 0;
while(i < a || j < b){
if(i < a){
wo.append(word1.charAt(i));
i++;
}
if(j<b){
wo.append(word2.charAt(j));
j++;
}
}
return wo.toString();
}
}
总结
这个题吧,主要考察了String类以及相关类的用法!