力扣1768(java&python)-交替合并字符串(简单)
题目:
给你两个字符串 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
示例 3:
输入:word1 = "abcd", word2 = "pq"
输出:"apbqcd"
解释:注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。
word1: a b c d
word2: p q
合并后: a p b q c d
提示:
1 <= word1.length, word2.length <= 100
word1 和 word2 由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/merge-strings-alternately
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
模拟:直接遍历两个字符串,依次取出字符串,进行拼接到结果字符串中。
java代码:
1 class Solution {
2 public String mergeAlternately(String word1, String word2) {
3 StringBuilder sb = new StringBuilder();
4 int n = word1.length(), m = word2.length();
5 for(int i = 0; i < n || i < m; i++){
6 if(i < n){
7 sb.append(word1.charAt(i));
8 }
9 if(i < m){
10 sb.append(word2.charAt(i));
11 }
12 }
13 return sb.toString();
14 }
15 }

python3-代码1:
1 class Solution:
2 def mergeAlternately(self, word1: str, word2: str) -> str:
3 n, m, i = len(word1), len(word2), 0
4 ans = ""
5 while i < n or i < m:
6 if i < n:
7 ans += word1[i]
8 if i < m:
9 ans += word2[i]
10 i += 1
11 return ans
12

python3-代码2:
class Solution:
def mergeAlternately(self, word1: str, word2: str) -> str:
return ''.join(a + b for a, b in zip_longest(word1, word2, fillvalue = ''))

小知识:
1.join()函数:
语法: 'sept'.join(seq):以sept作为分隔符,将seq所有的元素合并成一个新的字符串
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
2.zip_longest :具体可以用来对列表的一一对应,如果列表的长度不一致,则其会选择最长的那个列表,长度不足的用 fillvalue 进行代替,默认为 None。
力扣1768(java&python)-交替合并字符串(简单)的更多相关文章
- 【LeetCode】5685. 交替合并字符串 Merge Strings Alternately (Python)
作者: 负雪明烛 id: fuxuemingzhu 公众号:每日算法题 本文关键词:LeetCode,力扣,算法,算法题,交替合并字符串,Merge Strings Alternately,刷题群 目 ...
- 力扣561. 数组拆分 I-C语言实现-简单题
题目 传送门 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(a ...
- 力扣566. 重塑矩阵-C语言实现-简单题
题目 传送门 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据. 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要 ...
- 力扣832. 翻转图像-C语言实现-简单题
题目 传送门 文本 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...
- 力扣896. 单调数列-C语言实现-简单题
题目 传送门 文本 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j, ...
- java python oracle推断字符串是否为数字的函数
java public boolean isNumeric(String str){ Pattern pattern = Pattern.compile("^-?[0-9]+\\.?[0-9 ...
- 力扣 - 剑指 Offer 67. 把字符串转换成整数
题目 剑指 Offer 67. 把字符串转换成整数 思路1 根据题意,要解决这题,首先要判断的条件有: 不包括首位空格 第一位必须为:+.-.数字三者其一,否则不合法 数字必须连续的,如果遇到非数字, ...
- 力扣Leetcode 680. 验证回文字符串 Ⅱ
验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True 示例 2: 输入: "abca ...
- python文本 拼接或合并字符串
python文本 拼接.合并字符串 场景: 拼接.合并字符串 在这个场景中,我们首先想到的当然是使用+或者+=将两个字符串连接起来 >>> a='a' >>> ...
- java算法面试题:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
随机推荐
- vue 下 placeholder 修改颜色
input::placeholder{ color:#585c89 !important; }
- PRD(产品需求文档)与SRS(软件需求规格说明书)的区别
需求分析是软件开发过程中很重要的一个环节,目前需求分析完成后输出的文档有2种体系,一个是SRS(Software Requirements Specification,软件需求规格说明书),一个是PR ...
- java基本数据类型及运算的注意事项
java基本数据类型及运算的注意事项 一.基本数据类型 序号 类型 位数 范围 说明 整数类型 (最高位为符号位) byte 8位 -128(-27)~127(27-1) 默认类型为int 二进制0b ...
- Kettle实战视频教程
kettle实战视频教程 欢迎关注笔者的公众号: java大师, 每日推送java.kettle运维等领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!!个人网站: http://w ...
- Node.js解压版的环境配置及相关常用命令
下载 进入node.js官网的下载页面node.js下载页面,选择合适的版本进行下载 配置 1.设置环境变量 随便找一个地方,将文件解压出来 复制当前的路径,我的电脑右键,打开属性,左边有个高级系统配 ...
- 24_用Qt和FFmpeg实现简单的YUV播放器
前面文章FFmpeg像素格式转换中我们使用FFmpeg实现了一个像素格式转换工具类,现在我们就可以在Qt中利用QImage很容易的实现一个简单的YUV播放器了. 播放器功能很简单,只有播放.暂停和停止 ...
- verilog勘误系列之-->算术运算符运算失败
描述 在verilog代码设计时使用算术运算符与乘法搭配使用出现计算错误 原因 由于数据位宽设置不当导致 错误案例 wire signed [13:0] w01; wire signed [23:0] ...
- 深度解读UUID:结构、原理以及生成机制
What 是 UUID UUID (Universally Unique IDentifier) 通用唯一识别码 ,也称为 GUID (Globally Unique IDentifier) 全球唯一 ...
- Prism框架的用法
今天,我向大家介绍一款WPF后台框架,以及,它的用法. 官网 https://prismlibrary.com/ Prism 框架是一个用于构建松耦合.可维护且可测试的 WPF 和 Xamarin.F ...
- KingbaseES V8R6集群运维案例之---主备failover切换原因分析
案例说明: 生产环境,KingbaseES V8R6的集群发生failover切换,分析集群切换的原因. 适用版本: KingbaseES V8R6 集群架构: 137.xx.xx.67主 原备库 1 ...