问题
给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。
举个例子:如果目标字母 target = 'z' 并且字符列表为 letters = ['a', 'b'],则答案返回 'a'
输入:letters =["c", "f", "j"]
输出:"f"
方法
将letters遍历一遍,如果有元素大于target,则返回第一个大于target的元素,如果letters中没有大于target的元素,则返回第一个元素。
代码清单
def Than(letters,target): for i in letters: if i > target: return i return letters[0] # 如果未找到比target大的则返回第一个元素 letters = ["c", "f", "j","a"] # letters.sort() #如果给出的letters不是按顺序target = "z"print(Than(letters,target)) |
---|
运行此代码:
结语
此题难度不大,最关键的就是遍历和循环,循环可以让我们的代码变得更方便,更简单。解出此题的方法也有很多种,我们可以学习其中的思路,写出更好的代码。