|
发表于 2012-2-14 11:27:47
|
显示全部楼层
灵感来自月下, 我写这几行代码竟包括所有可能组合:
以月下提供例子为例, #后解释
s='110991191' # 从左至右读数字串
r=s[::-1] # 从右至左读数字串, 即反转读 !
g1=[s[i:i+n] for i in range(len(s)) for n in range(1, len(s)-i+1)] # 找出所有子串 in s
g2=[r[i:i+n] for i in range(len(r)) for n in range(1, len(r)-i+1)] # 找出所有子串 in r
for e in dict(zip(map(tuple, g1+g2), g1+g2)).values() : print e # 合并印出结果
编译运行代码,得结果如下:
1: 19
2: 1109911
3: 191
4: 9119
5: 11990
6: 99119
7: 011
8: 109
9: 99
10: 0
11: 10991
12: 91199011
13: 911
14: 119
15: 11099
16: 109911
17: 1099119
18: 9911
19: 0991
20: 19119
21: 1109
22: 91
23: 11099119 <<<<<< 月下
24: 91191
25: 9901
26: 199011
27: 91199
28: 9
29: 119901
30: 1911
31: 1199
32: 0991191
33: 11
34: 191199 <<<< Me
35: 9011
36: 90
37: 1990
38: 110991
39: 099119
40: 191199011 <<<< Me
41: 1
42: 911990
43: 199
44: 099
45: 1199011
46: 01
47: 1191
48: 110
49: 1099
50: 10
51: 991191
52: 09911
53: 19119901 <<<<< Me
54: 990
55: 9119901
56: 110991191 <<<<< 月下
57: 09
58: 991
59: 19901
60: 10991191
61: 1911990 <<<< Me
62: 99011
63: 901
可看到,结果我mark <<<<为月下或我作的词了.进一步完善程序,自动化也可能的! |
|