两个文件file1 file2, file1按递增顺序, 不小心将空格去掉了, 需还原


题目:

r=$((100*$RANDOM/32767));paste -d '\t' <(seq 11 $r 1000) <(seq 1000 -$r 11 |sort -R) > file1  ; sed 's/\t//g' file1 > file2

file1 共两列, 第一列是按等差进行排序的, 第二列是随机排序的, 现在不小心将file1中的空白都删掉了, 变得只有一列了, 如file2, 现在需要将file1进行还原.

[root@localhost ~]# 
[root@localhost ~]# cat file1
11      740
76      480
141     155
206     935
271     545
336     870
401     1000
466     350
531     285
596     675
661     25
726     805
791     90
856     415
921     220
986     610
[root@localhost ~]# cat file2
11740
76480
141155
206935
271545
336870
4011000
466350
531285
596675
66125
726805
79190
856415
921220
986610


我的解法:

#!/usr/bin/python
# coding:utf8

def rstripenter():
    f = []
    with open('file2') as fd:
        for r in fd: f.append(r.rstrip())
    return f

def exhmethod(x):
    y = z = x
    H1 = []
    H2 = []
    result = None
    for n in range(len(h)-2):
        h1 = h[n][0:x]
        H1.append(h1)
        while True:
            h2 = h[n+1][0:y]
            v1 = int(h2)+int(h2)-int(h1)
            z = len(str(v1))
            h3 = h[n+2][0:z]
            if v1 != int(h3):
                y += 1
            else:
                H2.append(h[n][x:])
                x = len(h2)
                break
            if len(h[n+1][0:y]) == len(h2):
                result = False
                break
        if result is False:
            break
    else:
        result = True
        H1.append(h2)
        H1.append(h3)
        H2.append(h[n+1][x:])
        H2.append(h[n+2][x:])
    if result is True:
        for r in zip(H1, H2): print '\t'.join(r)
        return result

h = rstripenter()
for n in range(1, len(h[0])):
    if exhmethod(n):
        break
    n+=1

只要是按等差排序的, 都能整出来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值