【字符串】匹配
题目
思路
其实是一道简单题,但是因为我的思路又复杂了,所以稍微记录一下
原思路
用replace()函数,对每个数从A-Z全部都排查一遍。虽然说绝对值不超过10000,但是并不知道噪音字母的个数,若很多的话还是会容易TLE
用re库的话也能写,通过了
import re
n = int(input())
num = 1
pattern = re.compile('[^-^0-9]')
for i in range(n):
tmp = input()
num = num * int(pattern.sub('', tmp))
print(str(num)[-3:])
参考思路
遍历字符串,把数字提取出来。可行性在于他的绝对值意味着其数字个数一定是<=4的,所以可以O(n)遍历完成,而且减少很多不必要的继续遍历
思考
对比我的思路与参考解法,我之所以想到用repalce其实和之前做到的一道题有关,但是显然这道题由于其题目特征,直接取数字字符拼凑是更好的解法。
不过最后想用re来findall一下,但是不知道怎么做,结果反而用sub把原思路给做出来了。也懒得把匹配搞懂。这个先埋个坑在这里吧!
嗯...另外下一次遇到困难可以再让自己想个10分钟再看参考答案orz