将一个字符串按照先大写再数字再小写的顺序进行排序。
大写:‘A-Z’
数字:‘0-9’
小写:‘a-z’
例如:
输入:“02zvA1d”
输出:“A021zvd”
方法1:
用Ascii码的思路。如下图,大写字母的Ascii码区间为:65-90;小写字母的Ascii码区间为:97-122;数字的Ascii区间为:48-57。
题解:
def StringSort(s):
s1=[]
s2=[]
s3=[]
for i in s:
if (48<=ord(i)<=57):
s1.append(i)
if (65<=ord(i)<=90):
s2.append(i)
if (97<=ord(i)<=122):
s3.append(i)
return ''.join(sorted(s2)+sorted(s1)+sorted(s3))
方法2:
用字符串的接口函数思路。如下图:
题解:
def StringSort1(s):
ss1=[]
ss2=[]
ss3=[]
for i in s:
if i.islower():
ss1.append(i)
if i.isupper():
ss2.append(i)
if i.isdigit():
ss3.append(i)
return ''.join(sorted(ss2)+sorted(ss3)+sorted(ss1))