当前位置: 首页 > news >正文

[ LeetCode 75 ] 1768. 交替合并字符串

题目描述:(相关标签:双指针、字符串

给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回合并后的字符串 。

示例 1:
输入:word1 = “abc”, word2 = “pqr”
输出:“apbqcr”
解释:字符串合并情况如下所示:
word1: a b c
word2: p q r
合并后: a p b q c r

解题思路:

  1. 初始化指针:使用两个指针分别指向两个字符串的当前字符位置。
  2. 交替取字符:交替从两个字符串中取字符,并将其添加到结果字符串中。
  3. 处理剩余字符:如果一个字符串比另一个长,继续将较长字符串中的剩余字符添加到结果中。
  4. 返回结果:最终返回合并后的字符串。

具体步骤:

  1. 初始化结果数组:使用一个数组 result 来存储交替合并的字符。
  2. 计算长度:获取两个字符串的长度,并计算最小长度。
  3. 交替合并:通过循环遍历最小长度,依次从 word1 和 word2 中取字符并添加到 result 中
  4. 处理剩余字符:使用 slice 方法将剩余的字符添加到结果中。
  5. 返回结果:使用 join 方法将数组转换为字符串并返回。

代码实现:

/*** @param {string} word1* @param {string} word2* @return {string}*/
function mergeAlternately(word1, word2) {// 1. 初始化结果数组let result = [];// 2. 获取两个字符串的长度, 并计算最小长度let len1 = word1.length;let len2 = word2.length;let minLen = Math.min(len1, len2);// 3. 通过循环遍历最小长度,交替添加字符到结果数组中for (let i = 0; i < minLen; i++) {result.push(word1[i]);result.push(word2[i]);}// 5. 处理剩余的字符if (len1 > minLen) {result.push(word1.slice(minLen));}if (len2 > minLen) {result.push(word2.slice(minLen));}// 6. 将结果数组转换为字符串并返回return result.join('');
}// 示例用法
console.log(mergeAlternately("abc", "pqr")); // 输出 "apbqcr"
console.log(mergeAlternately("ab", "pqrs")); // 输出 "apbqrs"
console.log(mergeAlternately("abcd", "pq")); // 输出 "apbqcd"
http://www.lryc.cn/news/517157.html

相关文章:

  • (三)通过WebGL绘制一个简单的三角形来理解渲染管线
  • 医学图像分析工具02:3D Slicer || 医学影像可视化与分析工具 支持第三方插件
  • Ollama VS LocalAI:本地大语言模型的深度对比与选择指南
  • 虚表 —— 隐藏行(简单版)
  • CAD批量打印可检索的PDF文件
  • 2025.1.7(c++基础知识点)
  • jenkins入门12-- 权限管理
  • Edge SCDN高效防护与智能加速
  • Ubuntu22.04配置静态ip
  • [Linux]线程的互斥与同步
  • Java:缓存:LinkedHashMap实现Lru
  • 【形式篇】年终总结怎么写:PPT如何将内容更好地表现出来
  • 自定义字典转换器用于easyExcel 导入导出
  • 0 Token 间间隔 100% GPU 利用率,百度百舸 AIAK 大模型推理引擎极限优化 TPS
  • js:事件流
  • Linux对比Windows
  • Excel 技巧03 - 如何对齐小数位数? (★)如何去掉小数点?如何不四舍五入去掉小数点?
  • Vue3国际化多语言的切换
  • 使用XAML语言仿写BiliBil登录界面
  • 机器学习和深度学习
  • Word表格批量提取数据到Excel,Word导出到Excel,我爱excel
  • SpringSecurity抛出异常但AccessDeniedHandler不生效
  • 高清绘画素材3600多张动漫线稿线描上色练习参考插画原画
  • EXCEL技巧
  • python制作翻译软件
  • ollama+FastAPI部署后端大模型调用接口
  • BERT:深度双向Transformer的预训练用于语言理解
  • 【AI-23】深度学习框架中的神经网络3
  • 网站运营数据pv、uv、ip
  • 高阶知识库搭建实战五、(向量数据库Milvus安装)