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