- 论坛徽章:
- 0
|
本帖最后由 yaozhibing41001 于 2014-05-16 14:42 编辑
回复 61# expert1
这种题目怎能漏了我大python
一,- #! /usr/local/bin/python
- import re
- # http://bbs.chinaunix.net/thread-4119878-4-1.html
- file_a=open(r'C:\Users\Administrator\Desktop\python\e\c.lst').readlines()
- file_b=open(r'C:\Users\Administrator\Desktop\python\e\d.lst').readlines()
- for name in file_a:
- a=name.replace("\n","")
- x_a=re.sub(" +",",",a).split(",")
- key_a=x_a[0]
- begin_a=int(x_a[1])
- end_a=int(x_a[2])
- key_a_r=range(begin_a,end_a+1)
- y=begin_a
- for name2 in file_b:
- b=name2.replace("\n","")
- x_b=re.sub(" +",",",b).split(",")
- key_b=x_b[0]
- begin_b=int(x_b[1])
- end_b=int(x_b[2])
- if key_a == key_b :
- if begin_b > end_a or begin_b <begin_a and end_b < begin_a:
- continue
- if begin_b > y:
- print key_a,y,begin_b-1
- y=end_b+1
- if y <= end_a:
- print key_a,y,end_a
复制代码 二。 这种执行太慢了。。。- #! /usr/local/bin/python
- import re
- # http://bbs.chinaunix.net/thread-4119878-4-1.html
- file_a=open(r'C:\Users\Administrator\Desktop\python\e\a.lst').readlines()
- file_b=open(r'C:\Users\Administrator\Desktop\python\e\b.lst').readlines()
- for name in file_a:
- a=name.replace("\n","")
- x_a=re.sub(" +",",",a).split(",")
- key_a=x_a[0]
- begin_a=int(x_a[1])
- end_a=int(x_a[2])
- key_a_r=range(begin_a,end_a+1)
- for name2 in file_b:
- b=name2.replace("\n","")
- x_b=re.sub(" +",",",b).split(",")
- key_b=x_b[0]
- begin_b=int(x_b[1])
- end_b=int(x_b[2])
- if key_a == key_b :
- for key_b_k in range(begin_b,end_b+1):
- try:
- key_a_r.remove(key_b_k)
- except ValueError:
- continue
- if len(key_a_r)>1:
- x=key_a_r[0]
- for y in key_a_r:
- if y-1 not in key_a_r:
- a=y
- while y+1 in key_a_r :
- y=y+1
- key_a_r.remove(y)
- print key_a,a,y
复制代码 |
|