力扣刷题记录——709. 转换成小写字母、771. 宝石与石头、704. 二分查找

简介: 力扣刷题记录——709. 转换成小写字母、771. 宝石与石头、704. 二分查找

709. 转换成小写字母

题目描述

给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。

示例 1:

输入:s = "Hello"

输出:"hello"


示例 2:

输入:s = "here"

输出:"here"


示例 3:

输入:s = "LOVELY"

输出:"lovely"

解题思路

用lower直接转成小写字母就可以了。

解题代码

1. def toLowerCase(s: str):
2. return s.lower()

771. 宝石与石头

题目描述

给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

字母区分大小写,因此 "a""A" 是不同类型的石头。

示例 1:

输入:jewels = "aA", stones = "aAAbbbb"

输出:3


示例 2:

输入:jewels = "z", stones = "ZZ"

输出:0

解题思路1

定义一个count,遍历jewels,在stones中数每一个元素,将结果累加起来,返回count。

解题代码

1. def numJewelsInStones(jewels: str, stones: str) -> int:
2.     count = 0
3. for i in jewels:
4.         count += stones.count(i)
5. return count

704. 二分查找

题目描述

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

示例 1:

输入:nums = [-1,0,3,5,9,12], target = 9

输出: 4

解释: 9 出现在 nums 中并且下标为 4


示例 2:

输入:nums = [-1,0,3,5,9,12], target = 2

输出: -1

解释: 2 不存在 nums 中因此返回 -1

解题思路

这题考察二分查找,定义两个指针去遍历列表,可以从两端向中间,也可以中间向两边,本题采用中间向两边,需要判断中间,防止左右不同时到达。

解题代码

1. def search(nums: list[int], target: int) -> int:
2.     mid = len(nums) // 2
3. if len(nums)%2 == 0:
4.         mid_l = len(nums) // 2-1
5.         mid_r = len(nums) // 2
6. else:
7.         mid_l = len(nums) // 2-1
8.         mid_r = len(nums) // 2 + 1
9. if nums[mid] == target:
10. return mid
11. 
12. while mid_l>=0 and mid_r <=len(nums):
13. if nums[mid_l] == target:
14. return mid_l
15. else:
16.             mid_l -= 1
17. if nums[mid_r] == target:
18. return mid_r
19. else:
20.             mid_r+=1
21. return -1


相关文章
|
13天前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
27 6
|
13天前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
42 2
|
13天前
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
16 7
|
13天前
|
算法 Python
【Leetcode刷题Python】 LeetCode 2038. 如果相邻两个颜色均相同则删除当前颜色
本文介绍了LeetCode 2038题的解法,题目要求在一个由'A'和'B'组成的字符串中,按照特定规则轮流删除颜色片段,判断Alice是否能够获胜,并提供了Python的实现代码。
25 3
|
13天前
|
算法 Python
【Leetcode刷题Python】剑指 Offer 33. 二叉搜索树的后序遍历序列
本文提供了一种Python算法,用以判断给定整数数组是否为某二叉搜索树的后序遍历结果,通过识别根节点并递归验证左右子树的值是否满足二叉搜索树的性质。
11 3
|
13天前
|
Python
【Leetcode刷题Python】50. Pow(x, n)
本文介绍了LeetCode第50题"Pow(x, n)"的解法,题目要求实现计算x的n次幂的函数,文章提供了递归分治法的详细解析和Python实现代码。
11 1
|
13天前
|
Python
【Leetcode刷题Python】LeetCode 478. 在圆内随机生成点
本文介绍了LeetCode 478题的解法,题目要求在给定圆的半径和圆心位置的情况下实现在圆内均匀随机生成点的功能,并提供了Python的实现代码。
12 1
|
13天前
|
算法 Python
【Leetcode刷题Python】295. 数据流的中位数
本文介绍了一种使用Python实现的数据结构,用以支持数据流中添加整数并返回当前所有元素的中位数,通过排序列表来计算中位数。
9 1
|
13天前
|
算法 Python
【Leetcode刷题Python】73. 矩阵置零
本文介绍了LeetCode第73题的解法,题目要求在给定矩阵中将所有值为0的元素所在的行和列全部置为0,并提供了一种原地算法的Python实现。
13 0
【Leetcode刷题Python】73. 矩阵置零
|
13天前
|
Python
【Leetcode刷题Python】1467. 两个盒子中球的颜色数相同的概率
本文介绍了LeetCode第50题"Pow(x, n)"的解法,题目要求实现计算x的n次幂的函数,文章提供了递归分治法的详细解析和Python实现代码。
13 0