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

【LeetCode】1768_交替合并字符串_C

题目描述

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

返回 合并后的字符串

https://leetcode.cn/problems/merge-strings-alternately/description/

示例

示例 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
  • word1word2 由小写英文字母组成

解题总结

实现方式1是我自己的写法,写完之后感觉有点冗余,但又不知如何改进,实现方式2则是借鉴了别人的题解,显然,方式2的代码更加简洁优雅

代码实现

  • 实现方式1
char * mergeAlternately(char * word1, char * word2){int length1 = strlen(word1);int length2 = strlen(word2);char* res = (char*)malloc(sizeof(char) * (length1 + length2 + 1));int i = 0;int j = 0;while(word1[i] != 0 && word2[i] != 0){res[j] = word1[i];j++;res[j] = word2[i];i++;j++;}if(word1[i] == 0){while(word2[i] != 0){res[j] = word2[i];i++;j++;}}else{while(word1[i] != 0){res[j] = word1[i];i++;j++;}}res[j] = 0;return res;
}
  • 实现方式2
char * mergeAlternately(char * word1, char * word2) {int length1 = strlen(word1);int length2 = strlen(word2);char* res = malloc(sizeof(char) * (length1 + length2 + 1));int i = 0;int j = 0;while (i < length1 || i < length2) {if (i < strlen(word1)) {res[j++] = word1[i];}if (i < strlen(word2)) {res[j++] = word2[i];}i++;}res[j] = 0;return res;
}

相关文章:

  • 牛市初期,Penpad 以 Fair Launch 方式推出首个资产 PEN
  • 如何创建测试计划?这些要考虑到
  • 【IO流系列】字符流练习(拷贝、文件加密、修改文件数据)
  • 一些可以访问gpt的方式
  • 如何选择适合电商的WordPress主题模板?
  • 在Spring Boot中如何实现异常处理?
  • 长贵对赵本山说:你需要我们家大脚,我立马给你配双大鞋!
  • 为什么要用Python?
  • leetcode热题100学习计划-链表-相交链表
  • 【清理mysql数据库服务器二进制日志文件】
  • 如何在 Linux 中快速清空文件而不删除它们?
  • 恭喜莱佛士学生在SPADE室内设计大赛中一举拿下11个奖项
  • 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
  • Azkaban 大数据 任务调度
  • 认识通讯协议——TCP/IP、UDP协议的区别,HTTP通讯协议的理解
  • python3.6+scrapy+mysql 爬虫实战
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • css的样式优先级
  • ERLANG 网工修炼笔记 ---- UDP
  • httpie使用详解
  • leetcode388. Longest Absolute File Path
  • React-Native - 收藏集 - 掘金
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 构建二叉树进行数值数组的去重及优化
  • 力扣(LeetCode)22
  • 力扣(LeetCode)56
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #NOIP 2014# day.2 T2 寻找道路
  • $.proxy和$.extend
  • $jQuery 重写Alert样式方法
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (function(){})()的分步解析
  • (第27天)Oracle 数据泵转换分区表
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三)uboot源码分析
  • .NET 事件模型教程(二)
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET连接数据库方式
  • .Net组件程序设计之线程、并发管理(一)
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Pointcut 使用
  • @TableLogic注解说明,以及对增删改查的影响
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [HAOI2016]食物链
  • [LeetCode]—Rotate Image 矩阵90度翻转
  • [Linux] Ubuntu install Miniconda
  • [Lucas定理]【学习笔记】
  • [poj2891]Strange Way to Express Integers(扩展中国剩余定理)
  • [Spark][Python]DataFrame中取出有限个记录的例子
  • [Thinking in JAVA] 关于内部类的一些知识点