【LeetCode】744. Find Smallest Letter Greater Than Target 解题报告(Python)
2024-08-29 03:38:29
作者: 负雪明烛
id: fuxuemingzhu
个人博客: http://fuxuemingzhu.cn/
题目地址:https://leetcode.com/problems/find-smallest-letter-greater-than-target/description/
题目描述
Given a list of sorted characters letters containing only lowercase letters, and given a target letter target, find the smallest element in the list that is larger than the given target.
Letters also wrap around. For example, if the target is target = 'z'
and letters = ['a', 'b']
, the answer is 'a'
.
Examples:
Input:
letters = ["c", "f", "j"]
target = "a"
Output: "c"
Input:
letters = ["c", "f", "j"]
target = "c"
Output: "f"
Input:
letters = ["c", "f", "j"]
target = "d"
Output: "f"
Input:
letters = ["c", "f", "j"]
target = "g"
Output: "j"
Input:
letters = ["c", "f", "j"]
target = "j"
Output: "c"
Input:
letters = ["c", "f", "j"]
target = "k"
Output: "c"
Note:
- letters has a length in range [2, 10000].
- letters consists of lowercase letters, and contains at least 2 unique letters.
- target is a lowercase letter.
题目大意
给出了一个排序的字符数组,找出第一个比target大的字符。注意是数组是循环的。
解题方法
线性扫描
找到第一个比指定字符大的。如果没找到的话,列表是可以循环的。也就是说如果没找到就返回列表第一个字符。
class Solution(object):
def nextGreatestLetter(self, letters, target):
"""
:type letters: List[str]
:type target: str
:rtype: str
"""
for letter in letters:
## 提交了之后发现不用使用ord,字符可以用'>''<'比较大小
if ord(letter) > ord(target):
return letter
return letters[0]
二分查找
因为是有序的,所以直接二分即可。
class Solution(object):
def nextGreatestLetter(self, letters, target):
"""
:type letters: List[str]
:type target: str
:rtype: str
"""
index = bisect.bisect_right(letters, target)
return letters[index % len(letters)]
日期
2018 年 1 月 23 日
2018 年 11 月 19 日 —— 周一又开始了
最新文章
- Java学习笔记(一)
- Debian上安装Apache+Django全过程
- 思维题(转换) HDU 4370 0 or 1
- ";SQLServer无法打开用户默认数据库,登录失败,错误4064";的解决办法
- @gettrcname.sql
- Android样式的开发:drawable汇总篇
- Linux LDAP Server--->;Clients配置
- SQL2005中的事务与锁定(二)- 转载
- 学习练习 java面向对象封装汽车
- 【C#学习笔记】保存文件
- Interface的多层继承
- (step4.3.8)hdu 2181(哈密顿绕行世界问题——DFS)
- python 小程序—循环和列表训练
- Spring 中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?
- 生鲜配送管理系统_升鲜宝V2.0 小标签打印功能说明_15382353715
- LVM备份(3)- pg_dumpall
- 多线程之Executors基本使用
- mysql获取连接connection失败
- Linux (Fedora 28) 如何查看 CPU 温度
- django基类View.as_view()