我有以下输入数据,我想删除每个组和每个子组中的重复元素(使所有字符串保持相同的出现顺序)。一个组以一个有相关的字符串开始s5
,在这种情况下都在“FIRST CHAPTER”之下,下一个组从“SECOND CHAPTER”的第一次出现开始。每个组内可以是与 相关的子组s4
。例如“第一部分”、“介绍”、“第二部分”等。
输入就像左边的列。第二列是显示组内和组/子组内每个字符串出现次数的说明。第 3 列是预期输出,第 4 列是我目前得到的输出。
我用黄色突出显示了每个字符串的第一次出现,以便更好地向您展示应该在输出中打印哪些元素。黄色的那些是它们各自组/子组中的第一次出现,并删除所有白色的行,我们得到正确的输出。我希望有意义。
这是我当前的代码,其中逻辑看起来是 uniq 值。输出相似但不正确,因为将 uniq 值与整个数组进行比较,而不是与每个组进行比较。
a=<<_
s5>>FIRST CHAPTER
s4>>FIRST PART
s4>>INTRODUCTION
s3>>Article 1
s5>>FIRST CHAPTER
s4>>FIRST PART
s4>>INTRODUCTION
s3>>Article 2
s5>>FIRST CHAPTER
s4>>SECOND PART
s4>>REVIEW
s3>>Article 1
s5>>FIRST CHAPTER
s4>>SECOND PART
s4>>METHODOLOGY
s3>>Article1
s5>>SECOND CHAPTER
s4>>FIRST PART
s4>>INTRODUCTION
s3>>First section
s5>>SECOND CHAPTER
s4>>FIRST PART
s4>>INTRODUCTION
s3>>Second Section
_
b = a.split("\n")
c = b.uniq
puts c
有人可以帮助我如何做到这一点。谢谢
下面的输入和输出
| Input | Output |
|---------------------- |-------------------- |
| s5>>FIRST CHAPTER | s5>>FIRST CHAPTER |
| s4>>FIRST PART | s4>>FIRST PART |
| s4>>INTRODUCTION | s4>>INTRODUCTION |
| s3>>Arcticle 1 | s3>>Arcticle 1 |
| s5>>FIRST CHAPTER | s3>>Arcticle 2 |
| s4>>FIRST PART | s4>>SECOND PART |
| s4>>INTRODUCTION | s4>>REVIEW |
| s3>>Arcticle 2 | s3>>Arcticle 1 |
| s5>>FIRST CHAPTER | s4>>METHODOLOGY |
| s4>>SECOND PART | s3>>Arcticle1 |
| s4>>REVIEW | s5>>SECOND CHAPTER |
| s3>>Arcticle 1 | s4>>FIRST PART |
| s5>>FIRST CHAPTER | s4>>INTRODUCTION |
| s4>>SECOND PART | s3>>First section |
| s4>>METHODOLOGY | s3>>Second Section |
| s3>>Arcticle1 | |
| s5>>SECOND CHAPTER | |
| s4>>FIRST PART | |
| s4>>INTRODUCTION | |
| s3>>First section | |
| s5>>SECOND CHAPTER | |
| s4>>FIRST PART | |
| s4>>INTRODUCTION | |
| s3>>Second Section | |