[力扣]编程基础 0 到 1

文章目录

  • 编程基础 0 到 1
    • 思路
    • 解题方法
    • 进行优化

编程基础 0 到 1

【LeetCode】(Python):1768. 交替合并字符串

思路

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

  1. 先识别字符串长度
  2. 依次取字符串长度的数,最后的加入。

返回 合并后的字符串
示例 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 由小写英文字母组成

遇到报错问题:

TypeError: Solution.mergeAlternately() takes 2 positional arguments but 3 were given^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ret = Solution().mergeAlternately(param_1, param_2)
Line 36 in _driver (Solution.py)_driver()
Line 47 in <module> (Solution.py)

解决:

class Solution:def mergeAlternately(self, param1, param2):# 方法体pass

解题方法

class Solution:def mergeAlternately(self, word1, word2):str = ""min_lengths = min(len(word1), len(word2))for i in range(min_lengths):str += word1[i] + word2[i]str += word1[min_lengths:] + word2[min_lengths:]return str

这段代码定义了一个名为 Solution 的类,其中包含了一个名为 mergeAlternately 的方法。这个方法接受三个参数:self(表示实例对象本身)、word1 和 word2。方法的目的是将两个字符串按照交替的方式合并。

接下来,代码创建了一个空字符串 str 用于存储合并后的结果。然后,通过 min 函数找到 word1 和 word2 中长度较短的那个字符串的长度,并将其赋值给变量 min_lengths

接着,使用一个 for 循环,从0遍历到 min_lengths-1,依次取出 word1 和 word2 中对应位置的字符,并将它们拼接到 str 字符串中。

最后,将 word1 和 word2 中剩余的部分(即长度超过 min_lengths 的部分)拼接到 str 字符串的末尾。最终,方法返回拼接后的字符串 str。

这段代码的作用是将两个字符串按照交替的方式合并,结果字符串中包含了 word1 和 word2 中所有的字符。

进行优化

优化一:

class Solution:def mergeAlternately(self, word1, word2):min_length = min(len(word1), len(word2))merged = ''.join(word1[i] + word2[i] for i in range(min_length))return merged + word1[min_length:] + word2[min_length:]

在这个优化后的版本中,我们使用了列表推导式和字符串的 join() 方法来创建合并后的字符串。通过 join() 方法,我们将列表中的字符连接成一个字符串。这样做可以减少内存开销,并提高代码的可读性。

另外,我们在一行中完成了合并过程,不再需要显式地初始化空字符串 str,而是直接使用 merged 变量来存储合并后的结果。

优化二:

class Solution:def mergeAlternately(self, word1, word2):# 使用列表推导式,将两个字符串的字符交替放入列表中merged = [char1 + char2 for char1, char2 in zip(word1, word2)]# 将剩余的字符添加到列表中merged.extend(word1[len(word2):])merged.extend(word2[len(word1):])# 将列表中的字符连接成一个字符串并返回return ''.join(merged)

在这个优化后的代码中,首先使用了 zip 函数来将 word1 和 word2 中的字符一一配对,并使用列表推导式将配对的字符交替放入一个列表 merged 中。然后,将剩余的字符添加到 merged 列表中。最后,使用 join 方法将列表中的字符连接成一个字符串,并返回这个字符串。

这种优化方式使得代码更加简洁和易读,同时也提高了代码的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/680376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot-接入ai机器人 汇总

鱼聪明 Java SDKGitHub - liyupi/yucongming-java-sdk: 鱼聪明 AI 的 Java SDK&#xff0c;几行代码使用 AI 助手能力&#xff01;

CVE-2022-25578 漏洞复现

CVE-2022-25578 路由/admin/admin.php是后台&#xff0c;登录账号和密码默认是admin、tao&#xff0c;选择文件管理。 是否还记得文件上传中的.htaccess配置文件绕过发&#xff0c;在这个文件中加入一句AddType application/x-httpd-php .jpg&#xff0c;将所有jpg文件当作php…

位运算+leetcode(1)

基础 1.基础知识 以下都是针对数字的二进制进行操作 >> 右移操作符<< 左移操作符~ 取反操作符 & 有0就是0&#xff0c;全一才一 | 有一才一 &#xff0c;全0才0^ 相同为0&#xff0c;相异为1 异或( ^ )运算的规律 a ^ 0 a a ^ a 0a ^ b ^ c a ^ (b …

GraphicsMagick 的 OpenCL 开发记录(三十八)

文章目录 AccelerateScaleImage()和AccelerateResizeImage()的性能测试 <2022-05-18 Wed> AccelerateScaleImage()和AccelerateResizeImage()的性能测试 迭代100次&#xff0c;缩小图片50%&#xff0c;如下&#xff1a; [ysouynoarch gm-ocl]$ MAGICK_OCL_DEVICEtrue …

MyBatis篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、什么是 Mybatis?二、Mybaits 的优点三、MyBatis 框架的缺点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、什么…

【记录】电容的作用,调试Arduino及ESP8266

最近调试Arduino结合ESP8266进行WIFI传输和云端控制&#xff0c;准备用Arduino的3.3V输出直接作为ESP8266的电源&#xff0c;不想竟掉坑里了。 Arduino的3.3V输出接上ESP8266后&#xff0c;Arduino的程序就跑飞了。ESP8266刚上电还是相当生猛的&#xff0c;要吃掉一百多毫安的…

XBox One 国行解锁

国行机解锁具体步骤&#xff1a; ①&#xff1a;将主机升级到最新版的操作系统 ②&#xff1a;将U盘格式化为NTFS格式。 ③&#xff1a;新建一个文本文档&#xff0c;根据主机型号重命名为&#xff1a; XSX/S&#xff1a;$ConsoleGen9 X1X/S&#xff1a;$ConsoleGen8 X1&…

每日一练:LeeCode-617、合并二叉树【二叉树+DFS】

本文是力扣LeeCode-617、合并二叉树【二叉树DFS】 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两…

Z-Stack一直卡在HAL_BOARD_INIT();

原因是Debugger没有配置好&#xff0c;因为默认是Simulator&#xff0c;不是TI的驱动&#xff0c;所以仿真出现一直卡在 HAL_BOARD_INIT(); 的情况&#xff0c;解决方法就是将Simulator改为Texas Instruments 改成下面的样子

static

静态方法中,没有this关键字 静态方法中,只能访问静态 非静态方法可以访问所有 隐含了一个this

CSP-动态规划-最长公共子序列(LCS)

一、动态规划 动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09;主要用于求解可以被分解为相似子问题的复杂问题&#xff0c;特别是在优化问题上表现出色&#xff0c;如最短路径、最大子数组和、编辑距离等。动态规划的核心思想是将原问题分解为较小的子…

STM32 USART串口通信

目录 USART串口 串口发送 串口发送接收 串口收发HEX数据包 串口收发文本数据包 USART串口 串口发送 Serial.c #include "stm32f10x.h" // Device header #include "stdio.h" #include "stdarg.h"/*** brief 初始化串口以…

HTML 超文本标记语言

超文本标记语言 HTML 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。 页面制作的标准语言&#xff1a;HTML。 超文本标记语言 HTML (HyperText Markup Language) 是一种制作万维网页面的标准语言&#xff0c;它消除了不同计算机之间信息交流的障碍&#xff0c…

SQLyog安装配置(注册码)连接MySQL

下载资源 博主给你打包好了安装包&#xff0c;在网盘里&#xff0c;只有几Mb&#xff0c;防止你下载到钓鱼软件 快说谢谢博主&#xff08;然后心甘情愿的点个赞~&#x1f60a;&#xff09; SQLyog.zip 安装流程 ①下载好压缩包后并解压 ②打开文件夹&#xff0c;双击安装包 ③…

GPT 3.5 真的比 4.0聪明吗?

GPT 3.5 真的比 4.0聪明吗&#xff1f; DeepGo 计算机杂谈及深度学习记录&分享 在大语言模型大杀四方的今天 无论是哪个行业的工作人员 都用上了各种各样的模型 其中的佼佼者就是 ChatGPT! 众所周知 ChatGPT是有氪金的Plus4.0版本 那3.5真的不如4.0吗&#xff1f; 今天 我们…

【51单片机】DS18B20(江科大)

一、DS18B20温度传感器 1.DS18B20介绍 DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点 测温范围 :- 55℃到125℃ 通信接口:1-Wire(单总线) 其它特征:可形成…

MySQL性能调优篇(2)-数据库统计信息的收集

MySQL是一个开源的关系型数据库管理系统&#xff0c;被广泛应用于各种规模的企业和网站。而数据库统计信息的收集对于数据库性能调优和监控非常重要。本文将介绍MySQL数据库中的统计信息的收集方式及其用途&#xff0c;以及如何使用相关命令和工具进行统计信息收集。 一、什么…

Java中 ArrayList的扩容机制

ArrayList的扩容机制是怎样的 ArrayList的扩容机制是在当前容量不足以存储新元素时自动进行扩容。以下是ArrayList扩容机制的一般步骤&#xff1a; 当需要添加一个新元素到ArrayList中时&#xff0c;首先检查当前元素个数是否达到了数组的容量上限。如果达到了容量上限&#…

【MySQL进阶之路】亿级数据量表SQL调优实战

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

智能车折线电磁组学习资料

LQ_STC32G12K128核心板资料 链接:https://pan.baidu.com/s/1DWlhqX98dJczm35FNBYOBQ?pwd=pmc0 提取码:pmc0 LQ_STC32G12K128母板资料 链接:https://pan.baidu.com/s/1msFPIxXQaLJ5R1Mt0WANVA 提取码:7n9cLQ_STC32G12K128母板原理图资料 链接:https://pan.baid…