力扣刷题记录——412. Fizz Buzz、414. 第三大的数、415. 字符串相加

简介: 力扣刷题记录——412. Fizz Buzz、414. 第三大的数、415. 字符串相加

412. Fizz Buzz

题目描述

给你一个整数 n ,找出从 1 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer 下标从 1 开始)返回结果,其中:answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] == "Fizz" 如果 i 是 3 的倍数。answer[i] == "Buzz" 如果 i 是 5 的倍数。answer[i] == i (以字符串形式)如果上述条件全不满足。 示例 1: 输入:n = 3 输出:["1","2","Fizz"] 示例 2: 输入:n = 5 输出:["1","2","Fizz","4","Buzz"] 示例 3: 输入:n = 15 输出:["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]

解题思路

这一题思路还是很清晰的,用一个for循环去遍历1-n之间的整数,对5和3进行取模运算,如果余数为0的话说明能够除尽,在目标列表中添加对应的元素,直到遍历完全,最后返回这个列表。

解题代码

1. def fizzBuzz(n: int):
2.     target_list = []
3. for i in range(1,n+1):
4. if i % 3 == 0 and i % 5 == 0:
5.             target_list.append("FizzBuzz")
6. elif i % 3 == 0:
7.             target_list.append("Fizz")
8. elif i % 5 == 0:
9.             target_list.append("Buzz")
10. else:
11.             target_list.append(str(i))
12. return target_list

414. 第三大的数

题目描述

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 示例 1: 输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。 示例 2: 输入:[1, 2] 输出:2 解释:第三大的数不存在, 所以返回最大的数 2 。 示例 3: 输入:[2, 2, 3, 1] 输出:1 解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。 此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。

解题思路

首先通过集合转列表的方式去除列表中重复的元素,再判断一下转化之后的列表长度是不是小于3,如果是返回列表最大值,如果不是,对列表进行 降序排序,返回第三大的元素。

解题代码

1. def thirdMax(nums):
2.     nums_list = list(set(nums))
3. if len(nums_list) < 3:
4. return max(nums_list)
5. else:
6.         nums_list.sort(reverse=1)
7. return nums_list[2]

415. 字符串相加

题目描述

给定两个字符串形式的非负整数 num1 num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger ), 也不能直接将输入的字符串转换为整数形式。 示例 1: 输入:num1 = "11", num2 = "123" 输出:"134" 示例 2: 输入:num1 = "456", num2 = "77" 输出:"533" 示例 3: 输入:num1 = "0", num2 = "0" 输出:"0"

解题思路

使用eval可以对字符串直接相加,不过不知道eval能不能用啊,可以先试一下,用eval相加之后转成str型,返回结果。

解题代码

1. def addStrings(num1: str, num2: str):
2.     result = eval(num1)+eval(num2)
3. return str(result)

直接转int也能通关,看来力扣的检测方法没办法检测str转int。


相关文章
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
107 2
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
280页PDF,全方位评估OpenAI o1,Leetcode刷题准确率竟这么高
【10月更文挑战第24天】近年来,OpenAI的o1模型在大型语言模型(LLMs)中脱颖而出,展现出卓越的推理能力和知识整合能力。基于Transformer架构,o1模型采用了链式思维和强化学习等先进技术,显著提升了其在编程竞赛、医学影像报告生成、数学问题解决、自然语言推理和芯片设计等领域的表现。本文将全面评估o1模型的性能及其对AI研究和应用的潜在影响。
10 1
|
15天前
|
JavaScript
力扣3333.找到初始输入字符串Ⅱ
【10月更文挑战第9天】力扣3333.找到初始输入字符串Ⅱ
30 1
|
2月前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
|
29天前
|
C++
Leetcode第43题(字符串相乘)
本篇介绍了一种用C++实现的字符串表示的非负整数相乘的方法,通过逆向编号字符串,将乘法运算转化为二维数组的累加过程,最后处理进位并转换为字符串结果,解决了两个大数相乘的问题。
23 9
|
29天前
|
算法 C++
Leetcode第八题(字符串转换整数(atoi))
这篇文章介绍了LeetCode上第8题“字符串转换整数(atoi)”的解题思路和C++的实现方法,包括处理前导空格、正负号、连续数字字符以及整数溢出的情况。
15 0
|
29天前
【LeetCode 22】459.重复的子字符串
【LeetCode 22】459.重复的子字符串
27 0
|
29天前
【LeetCode 20】151.反转字符串里的单词
【LeetCode 20】151.反转字符串里的单词
17 0
|
29天前
【LeetCode 19】541.反转字符串II
【LeetCode 19】541.反转字符串II
19 0