我面临一个奇怪的问题,尽管尝试了很多次,但我无法找到问题的逻辑和正确的代码。
我有一个格式如下的文件:
aa:bb:cc dd:ee:ff 100 ---------->line1
aa:bb:cc dd:ee:ff 101 ---------->line2
dd:ee:ff aa:bb:cc 230 ---------->line3
dd:ee:ff aa:bb:cc 231 ---------->line4
dd:ee:ff aa:bb:cc 232 ---------->line5
aa:bb:cc dd:ee:ff 102 ---------->line6
aa:bb:cc dd:ee:ff 103 ---------->line7
aa:bb:cc dd:ee:ff 108 ---------->line8
dd:ee:ff aa:bb:cc 233 ---------->line9
gg:hh:ii jj:kk:ll 450 ---------->line10
jj:kk:ll gg:hh:ii 600 ---------->line11
我的程序应该逐行读取文件。在第一行和第二行中,对应的 column1 和 column2 值相等。第三列是任何两行都不相同的序列号。
由于 line1 和 line2 是相同的,除了它们的序列号仅相差 1,我应该首先读取这两行并将它们的计数作为 2 写入输出文件。如果我们观察,第 6 行和第 7 行与第 1 行和第 2 行相同,具有连续的序列号,但行号 line3、line4、line5 具有不同的第 1 列和第 2 列条目。因此,行(1&2) 和行(6&7) 不应全部组合在一起。因此,在输出文件中,我应该得到类似 2 3 2 1 1 1 1 的结果。还有一件事是,第 7 行和第 8 行的序列号相差超过 1。因此,第 8 行应该算作一个单独的条目, 不与第 6 行和第 7 行一起,尽管第 6,7,8 行具有相同的前两列。
我希望大多数人都能理解这个问题。如果没有,我会澄清这个问题的任何事情。
如您所见,这是一个非常复杂的问题。我尝试使用字典,因为这是我知道的唯一数据结构,但没有任何逻辑有效。请帮我解决这个问题。