lintcode 353 · 最大字母
描述
给定字符串S,找到最大的字母字符,其大写和小写字母均出现在S中,则返回此字母的大写,若不存在则返回"NO"。
样例
输入: S = "admeDCAB"
输出: "D"
输入: S = "adme"
输出: "NO"
python3代码
简单思路:集合化,去除重复遍历的过程,建立26个字母的状态列表(分别为大小写出现的状态), 遍历状态列表,过滤大小写均存在的情况
def largestLetter(self, s):
s = list(set(s))
out = [[False, False] for _ in range(26)]
maxi = -1
for i in range(len(s)):
if s[i] >= "A" and s[i] <= "Z":
out[ord(s[i]) - ord("A")][0] = True
elif s[i] >= "a" and s[i] <= "z":
out[ord(s[i]) - ord("a")][1] = True
for i in range(26):
if out[i][0] and out[i][1]:
if maxi < i:
maxi = i
return chr(maxi + ord("A")) if maxi != -1 else "NO"