Chris丶topher
发表于 2020-2-17 09:16:39
符合条件:该字母ASCII码最大 && 在字符串中该字母同时出现大小写
按照这个理解,第一个确实是“B”呀
yexing
发表于 2020-2-17 09:38:08
zltzlt 发表于 2020-2-17 09:03
输入空字符串 "" 报错
没考虑到这个{:10_262:}
def func333(s:str) -> str:
if not s:
return "~"
string = []
for i in s:
string.append(i)
string.sort(reverse=True)
for i in string:
if i.upper() in s and i.lower() in s:
st = i
flag = 1
break
else:
flag = 0
return (st.upper() if flag==1 else "~")
zltzlt
发表于 2020-2-17 09:38:34
yexing 发表于 2020-2-17 09:38
没考虑到这个
可以了,95 ms
TJBEST
发表于 2020-2-17 10:51:13
不追求速度,最近正在研究编码 ord函数就是Unicode十进制码 所以我用一用 找找感觉{:5_109:}
def fun333(string):
arr = sorted(set(string))
M = len(arr)
constNum = ord('a') - ord('A')
for index in range(M - 1,-1,-1):
temp = arr
unicodeNum = ord(temp)
if unicodeNum < ord('a'):
break
else:
BigAlpha = chr(unicodeNum - constNum)
if BigAlpha in arr:
return BigAlpha
else:
pass
return '~'
Geoffreylee
发表于 2020-2-17 12:39:58
def f_333(s):
s = list(set(s))
max_asc = 0
for i in range(len(s) - 1):
max_asc = ord(s) if ord(s) >= max_asc else max_asc
if chr(max_asc) in s and chr(max_asc).upper() in s:
return chr(max_asc).upper()
else:
return '~'
蒋博文
发表于 2020-2-17 13:05:44
def fun(s):
a = set(s)
b = sorted()[::-1]
for i in b:
if i.upper() in a:
return i.upper()
return "~"
不知道能不能行
ouyunfu
发表于 2020-2-17 15:43:56
zltzlt 发表于 2020-2-17 09:00
发代码请用 ""
好的
graceasyi
发表于 2020-2-17 15:49:42
def fun333(s1):
s2=list(set())
s2.sort(reverse=True)
for i in s2:
if i-32 in s2:
return chr(i-32)
else:
return "~"
kinkon
发表于 2020-2-17 18:36:59
缩成两行
def fun333(s):
st = sorted(list(set(s) & set(s.swapcase())))
return st[-1].upper() if st else "~"
840613937
发表于 2020-2-17 19:35:51
546623863
发表于 2020-2-17 20:10:23
zltzlt 发表于 2020-2-17 08:58
输入空字符串 "" 报错
额,还有空字符串。。
546623863
发表于 2020-2-17 20:12:22
zltzlt 发表于 2020-2-17 08:58
输入空字符串 "" 报错
def fun333(x : str):
if(x == ""):
return "~"
s = set(x)
s = list(s)
s.sort()
if(s > 'z'):
return "~"
while s != []:
temp = s.pop()
if(temp < 'a'):
return "~"
temp = temp.upper()
if(temp in s):
return temp
return "~"
zltzlt
发表于 2020-2-17 21:11:41
TJBEST 发表于 2020-2-17 10:51
不追求速度,最近正在研究编码 ord函数就是Unicode十进制码 所以我用一用 找找感觉
嗯,不过大多数人都会更喜欢使用 upper() 和 lower() {:10_250:}
zltzlt
发表于 2020-2-17 21:13:00
Geoffreylee 发表于 2020-2-17 12:39
解答错误
输入:"aAbBcD"
输出:"~"
预期结果:"B"
zltzlt
发表于 2020-2-17 21:13:25
蒋博文 发表于 2020-2-17 13:05
不知道能不能行
可以,100 ms
zltzlt
发表于 2020-2-17 21:14:20
kinkon 发表于 2020-2-17 18:36
缩成两行
{:10_257:}
zltzlt
发表于 2020-2-17 21:16:54
840613937 发表于 2020-2-17 19:35
我改进了,你看看也没有变快
方法太多了,都还没记住
swapcase 那里,搞错了吧
zltzlt
发表于 2020-2-17 21:17:19
546623863 发表于 2020-2-17 20:12
可以了,95 ms
kinkon
发表于 2020-2-17 21:20:57
zltzlt 发表于 2020-2-17 21:14
是不是50ms内呢?
840613937
发表于 2020-2-17 21:58:23