继续:一道Google笔试题目
时间:2010-11-01
来源:互联网
其实那个帖子都有错LZ没做认真测试就结了, perl比较怂也就举几个反例
至于我那个少处理一个情况:
1-1-1.jpg
1-1-2.jpg
2.jpg
脚本通过,但是第2个1的存在是非法的,因为同列中只存在1。
正确的应该是:
1-1-1.jpg
1-1-2.jpg
1-2.jpg
2.jpg
即同列中不可以只存在1,至少要到2。
但是下面的是正确的。
1-1-1.jpg
1-1-2.jpg
因为用户可以留着以后命名嘛,不然每次屁股后面都得跟个2= =
下面是修改后的脚本:
Python code
算法比较机械,期待另人大囧的奇淫意巧。

至于我那个少处理一个情况:
1-1-1.jpg
1-1-2.jpg
2.jpg
脚本通过,但是第2个1的存在是非法的,因为同列中只存在1。
正确的应该是:
1-1-1.jpg
1-1-2.jpg
1-2.jpg
2.jpg
即同列中不可以只存在1,至少要到2。
但是下面的是正确的。
1-1-1.jpg
1-1-2.jpg
因为用户可以留着以后命名嘛,不然每次屁股后面都得跟个2= =
下面是修改后的脚本:
Python code
#coding=utf-8 import re; import os; import os.path; #从路径path下提取文件名并格式化 def FormatFileNames(path): files = [_f for _f in os.listdir(path) if os.path.isfile(os.path.join(path, _f))]; formattedNames = {}; for _f in files: all = re.findall(r"\d+", _f); all = [int(_i) for _i in all]; formattedNames[tuple(all)] = _f; keys = sorted(formattedNames); formattedNames = [(formattedNames[_i], _i) for _i in keys]; return formattedNames; #检查文件名合法性 def CheckFileNames(formattedNames): fn = formattedNames; if(fn and fn[0][1].count(1) != len(fn[0][1])): return 0; for _fni in range(1, len(fn)): seqPre, seqCur = fn[_fni-1][1], fn[_fni][1]; seqPreLen, seqCurLen = len(seqPre), len(seqCur); minSeqLen = min(seqPreLen, seqCurLen); for _si in range(minSeqLen): if(seqCur[_si] - seqPre[_si] == 1): for _ci in range(_si + 1, seqCurLen): if(seqCur[_ci] != 1): return _fni; if(_si != seqPreLen - 1): for _pi in range(_si + 1, seqPreLen): if(seqPre[_pi] == 1): return _fni; break; else: return _fni; return None; mypath = "f:/testtest/"; formattedNames = FormatFileNames(mypath); res = CheckFileNames(formattedNames); if(res != None): print("invalid filename: ", formattedNames[res][0]); else: print(":)");
算法比较机械,期待另人大囧的奇淫意巧。
作者: I_NBFA 发布时间: 2010-11-01
原帖地址http://topic.csdn.net/u/20101101/13/6210b296-f58d-4e90-a784-e5b46e8c3fd4.html
作者: I_NBFA 发布时间: 2010-11-01
地址是这个,cc又蛋疼了。
http://topic.csdn.net/u/20101029/19/ba0666f9-65f6-495b-9be8-21ae4ce9d03b.html
http://topic.csdn.net/u/20101029/19/ba0666f9-65f6-495b-9be8-21ae4ce9d03b.html
作者: I_NBFA 发布时间: 2010-11-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28