一、统计字符串封闭区间
一个数字或字符在形状上可能存在封闭的区间,比如数字8有两个封闭区间,大写字母A有一个封闭区间。小写字母c和数字5则没有封闭区间、
def get_num(string): num = 0 for i in string: if i in "8B": num += 2 elif i in "4690qeopadgbQROPAD": num += 1 return num
二、字符串排序
解析输入的字符串数组,提取出字符串中的时间戳信息,并且将字符串按照时间戳排序后,输出到控制台。
每个字符串由“/-:”和字母、数字组成,时间戳在字符串中的位置不确定,时间戳格式为:2019-01-01T07:20:20。
输出描述:
将输入的字符串按照时间戳进行从小到大排序后,输出。符合如下规则:
1、如果时间戳信息相同,按照字符串长度从小到大进行排序;
2、如果长度相同,则按照从首字符开始的ASCII码值比较,从小到大进行排序;
3、如果两个字符串完全一样,则只需要输出一个
import re import datetime def sort_arry(arry): com = re.compile(r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}") sort_key = lambda arr:(datetime.datetime.strptime(str(re.findall(com, arr)[0]), "%Y-%m-%dT%H:%M:%S"), len(arr), ord(arr[0])) return sorted(list(set(arry)), key=sort_key)