LeetCode 75 第一题(1768)交替合并字符串
发布人:shili8
发布时间:2024-12-09 19:17
阅读次数:0
**LeetCode75 第一题: 交替合并字符串**
### 题目描述给定两个以空格为分隔的字符串 `s1` 和 `s2`,返回一个新字符串,其中交替取 `s1` 和 `s2` 中的字符。
### 示例* 输入:`s1 = "hello", s2 = "world"`
输出: `"hweolrllod"`
* 输入:`s1 = "abc", s2 = "pqr"`
输出: `"apbqcr"`
### 解决方案#### 方法1: 使用 Python 的列表推导式
def mergeAlternately(s1, s2): """ 交替合并两个字符串 Args: s1 (str): 第一个字符串 s2 (str): 第二个字符串 Returns: str: 合并后的新字符串 """ # 确保输入的都是字符串类型 assert isinstance(s1, str) and isinstance(s2, str), "输入必须是字符串" # 确保两个字符串长度相等 assert len(s1) == len(s2), "两个字符串长度不一致" # 使用列表推导式交替取 s1 和 s2 中的字符 merged = [char1 + char2 for char1, char2 in zip(s1, s2)] # 将列表转换为字符串并返回 return ''.join(merged) # 测试用例s1 = "hello" s2 = "world" print(mergeAlternately(s1, s2)) # 输出: "hweolrllod" s1 = "abc" s2 = "pqr" print(mergeAlternately(s1, s2)) # 输出: "apbqcr"
#### 方法2: 使用 Python 的 `zip` 函数
def mergeAlternately(s1, s2): """ 交替合并两个字符串 Args: s1 (str): 第一个字符串 s2 (str): 第二个字符串 Returns: str: 合并后的新字符串 """ # 确保输入的都是字符串类型 assert isinstance(s1, str) and isinstance(s2, str), "输入必须是字符串" # 确保两个字符串长度相等 assert len(s1) == len(s2), "两个字符串长度不一致" # 使用 zip 函数交替取 s1 和 s2 中的字符 merged = ''.join(a + b for a, b in zip(s1, s2)) return merged# 测试用例s1 = "hello" s2 = "world" print(mergeAlternately(s1, s2)) # 输出: "hweolrllod" s1 = "abc" s2 = "pqr" print(mergeAlternately(s1, s2)) # 输出: "apbqcr"
#### 方法3: 使用 Python 的 `itertools.zip_longest` 函数
import itertoolsdef mergeAlternately(s1, s2): """ 交替合并两个字符串 Args: s1 (str): 第一个字符串 s2 (str): 第二个字符串 Returns: str: 合并后的新字符串 """ # 确保输入的都是字符串类型 assert isinstance(s1, str) and isinstance(s2, str), "输入必须是字符串" # 确保两个字符串长度相等 assert len(s1) == len(s2), "两个字符串长度不一致" # 使用 zip_longest 函数交替取 s1 和 s2 中的字符 merged = ''.join(a + b for a, b in itertools.zip_longest(s1, s2)) return merged# 测试用例s1 = "hello" s2 = "world" print(mergeAlternately(s1, s2)) # 输出: "hweolrllod" s1 = "abc" s2 = "pqr" print(mergeAlternately(s1, s2)) # 输出: "apbqcr"
### 总结本题目要求交替取两个字符串中的字符并合并为一个新字符串。提供了三种不同的解决方案,分别使用 Python 的列表推导式、zip 函数和 itertools.zip_longest 函数来实现该功能。这些解决方案都能正确地处理输入的字符串,并返回合并后的新字符串。
### 提示* 确保输入的都是字符串类型。
* 确保两个字符串长度相等。
* 使用 zip 或 itertools.zip_longest 函数交替取 s1 和 s2 中的字符。
* 将列表转换为字符串并返回。