1.交替合并字符串
题目:给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并字符串的末尾。
示例 1:
输入:word1 = "abc", word2 = "pqr"
输出:"apbqcr"
解释:字符串合并情况如下所示:
word1: a b c
word2: p q r
合并后: a p b q c r
示例 2:
输入:word1 = "ab", word2 = "pqrs"
输出:"apbqrs"
解释:注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。
word1: a b
word2: p q r s
合并后: a p b q r s
个人解答:
class Solution {
public String mergeAlternately(String word1, String word2) {
StringBuilder res = new StringBuilder(); //定义可变字符串对象res,内容初始为空
int len = Math.min( word1.length(),word2.length()); //两个字符串的最小长度
for(int i=0;i<len;i++){ //在字符串最小长度内进行交替拼接
res.append(word1.charAt(i)).append(word2.charAt(i)); //先拼接第一个字符串的值,在拼接第二个字符串的值
};
res.append(word1.substring(len)).append(word2.substring(len)); //从最小长度之后开始拼接
return res.toString(); //返回字符串拼接的值
}
}
①用到的方法总结
//1.StringBuilder类:创建可变字符串,StringBuilder创建的对象内容可以进行修改
StringBuilder res = new StringBuilder(); //定义可变字符串对象res,内容初始为空
StringBuilder sb = new StringBuilder("hello"); //创建对象,内容为hello
//2.Math.min():math类的min方法,找出参数中的最小值
Math.min( word1.length(),word2.length()); //两个字符串的最小长度
//3.length()方法:字符串string中的方法,返回字符串长度
word1.length();
word2.length();
//4.append()方法:String类的方法,将值添加到字符串末尾
res.append(word1.charAt(i));
//5.public char charAt(int index):获取某个索引位置的字符返回
word1.charAt(i);
//6.public String substring(int beginIndex):从传入的索引截取到末尾
word1.substring(len);
//7.toString() 由于StringBuilder创建的是对象,因此末尾用toString()将对象转换成一个真正的字符串
String newStr = sb.toString();
res.toString();
②思路
- 创建一个空字符串,用来保存拼接的字符串
- 创建一个int变量len,用来保存两个字符串的最小长度
- 在最小长度内,使用append()方法轮流添加一个字符
- 在最小长度外,使用substring()方法将超过最小长度的字符串直接截取拼接到末尾
- 将拼接好的字符串返回给函数
③IDEA编译器测试
public class Test {
public static void main(String[] args) { //调用测试
String result = AppendString("abc","pqr");
System.out.println(result);
result = AppendString("ab","pqrs");
System.out.println(result);
result = AppendString("abcd","pq");
System.out.println(result);
/*输出结果:
apbqcr
apbqrs
apbqcd
*/
}
public static String AppendString(String word1,String word2){
StringBuilder res = new StringBuilder(); //创建一个空字符串对象
int len = Math.min(word1.length(),word2.length()); //保存两个字符串长度中的最小值
//在最小长度内进行轮流拼接
for (int i = 0;i < len;i++){
res.append(word1.charAt(i)).append(word2.charAt(i)); //轮流拼接
}
//超过的长度进行直接拼接
res.append(word1.substring(len)).append(word2.substring(len));
return res.toString(); //返回字符串
}
}
标签:res,String,StringBuilder,LeedCode,word1,word2,字符串,刷题
From: https://www.cnblogs.com/sillyfox/p/17792936.html