字符匹配
规则:
首字母必须为字母
只能包含数字和字母
数字和字母必须都有
(莫烦python,也可以用正则表达式解决)
每一行输入都对应一行输出
输入:
第一行:数字(需要判断的行数)
后面的行:每行一个字符串
输出: Accept 或者 Wrong
import re
def isValid(s):
if not s: return False
if len(s) > 20: return False
# 判断首字母是否为字母
if not s[0].isalpha(): return False
# 判断字符串是否由字母和数字组成
if not s.isalnum(): return False
# 判断是否含有数字
numMatch = re.compile('[0-9]')
if not numMatch.search(s): return False
return True
# # 判断是否含有数字也可以这样:截止现在,只剩下 全字母 和 字母+数字 组合
# if s.isalpha():
# return False
# else:
# return True
T = int(input())
for _ in range(T):
s = input().strip() # 这里要strip,大坑耽误不少时间
if isValid(s):
print('Accept')
else:
print('Wrong')
小美跑腿
输入所有行后才输出结果
输入示例:
输入第一行:
[5,2] # 5个订单,只能取2个订单。
后面的行:# 赚的钱是第一个数+第二个数2。
[1,2] # 1+22=5元
[3,1] # 5
[4,2] # 8
[4,2] # 8
[5,1] # 7
输出:
要赚最多的钱,返回小美选择的订单序列
n, m = map(int, input().split())
arr = []
for i in range(n):
v, w = list(map(int, input().split()))
arr.append([v+w*2,i+1])
arr=sorted(arr,key=lambda x:(-x[0],x[1])) # 按第一个元素降序排列,第一个元素相同时,按第二个元素升序排列
res=[arr[i][1] for i in range(m)]
res=' '.join(map(str,res))
print(res)