digitalmars.D.learn - Finding duplicate elements
- vino (13/13) Aug 15 2023 Hi All,
- kdevel (31/33) Aug 15 2023 ```d
- Ferhat =?UTF-8?B?S3VydHVsbXXFnw==?= (3/16) Aug 15 2023 Another approach would be using a rbtree as container at the
- FeepingCreature (20/33) Aug 16 2023 ```
- vino (3/24) Aug 26 2023 Thank you very much
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
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
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.BAnother approach would be using a rbtree as container at the first place.
Aug 15 2023
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
On Wednesday, 16 August 2023 at 12:51:31 UTC, FeepingCreature wrote:On Tuesday, 15 August 2023 at 17:59:27 UTC, vino wrote:Thank you very much[...]``` 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 26 2023