www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Finding duplicate elements

reply vino <akashvino79 gmail.com> writes:
Hi All,

  Request your help in finding duplicate element without sorting 
as per the below example

```
Example:
string[] args = [" test3", "test2 ", " test1 ", " test1 ", " "];

Output Required:
If duplicate element found then print "Duplicate element found: 
<element name>"
else print ["test3", "test2", "test1"];
```
From,
Vino.B
Aug 15 2023
next sibling parent kdevel <kdevel vogtner.de> writes:
On Tuesday, 15 August 2023 at 17:59:27 UTC, vino wrote:
  Request your help in finding duplicate element without sorting 
 as per the below example
```d module remove_duplicates; import std.stdio; import std.format : format; import std.string : strip; int main (string [] args) { bool [string] found; string [] result; foreach (s; args [1..$]) { auto t = s.strip; if (t == "") continue; if (t in found) stderr.writefln!"Duplicate element found: <%s>" ("element name"); else { found [t] = true; result ~= t; } } result.writeln; return 0; } ``` ``` $ ./remove-duplicates " test3" "test2 " " test1 " " test1 " " " Duplicate element found: <element name> ["test3", "test2", "test1"] ```
Aug 15 2023
prev sibling next sibling parent Ferhat =?UTF-8?B?S3VydHVsbXXFnw==?= <aferust gmail.com> writes:
On Tuesday, 15 August 2023 at 17:59:27 UTC, vino wrote:
 Hi All,

  Request your help in finding duplicate element without sorting 
 as per the below example

 ```
 Example:
 string[] args = [" test3", "test2 ", " test1 ", " test1 ", " "];

 Output Required:
 If duplicate element found then print "Duplicate element found: 
 <element name>"
 else print ["test3", "test2", "test1"];
 ```
 From,
 Vino.B
Another approach would be using a rbtree as container at the first place.
Aug 15 2023
prev sibling parent reply FeepingCreature <feepingcreature gmail.com> writes:
On Tuesday, 15 August 2023 at 17:59:27 UTC, vino wrote:
 Hi All,

  Request your help in finding duplicate element without sorting 
 as per the below example

 ```
 Example:
 string[] args = [" test3", "test2 ", " test1 ", " test1 ", " "];

 Output Required:
 If duplicate element found then print "Duplicate element found: 
 <element name>"
 else print ["test3", "test2", "test1"];
 ```
 From,
 Vino.B
``` import std; void main() { string[] args = [" test3", "test2 ", " test1 ", " test1 ", " "]; findDuplicates(args); } void findDuplicates(string[] args) { bool[string] dupes; foreach (arg; args) { if (arg in dupes) { writefln!"Duplicate element found: %s"(arg); return; } dupes[arg] = true; } writefln!"%s"(dupes.keys); } ```
Aug 16 2023
parent vino <akashvino79 gmail.com> writes:
On Wednesday, 16 August 2023 at 12:51:31 UTC, FeepingCreature 
wrote:
 On Tuesday, 15 August 2023 at 17:59:27 UTC, vino wrote:
 [...]
``` import std; void main() { string[] args = [" test3", "test2 ", " test1 ", " test1 ", " "]; findDuplicates(args); } void findDuplicates(string[] args) { bool[string] dupes; foreach (arg; args) { if (arg in dupes) { writefln!"Duplicate element found: %s"(arg); return; } dupes[arg] = true; } writefln!"%s"(dupes.keys); } ```
Thank you very much
Aug 26 2023