From ad0edd3d512bea54951bd8c2cf5371d71f435f63 Mon Sep 17 00:00:00 2001 From: Quang Nguyen <41325216+quangnhat185@users.noreply.github.com> Date: Mon, 11 Oct 2021 20:01:13 +0200 Subject: [PATCH 1/3] is_unique with map --- .../1.Is Unique/1. Is_unique.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp b/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp index 6118cc1..c3397b2 100644 --- a/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp +++ b/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include // for sort() using namespace std; @@ -49,6 +50,20 @@ bool isUniqueChars_noDS( string str) { return noRepeat; } +bool is_unique(string str){ + map character_counts; + + for (char c: str){ + for (auto it=character_counts.begin(); it!=character_counts.end(); it++){ + if (c==it->first){ + return false; + } + } + character_counts[c]=1; + } + return true; +} + int main(){ vector words = {"abcde", "hello", "apple", "kite", "padle"}; for (auto word : words) From ae7c8c3f42c6e7b98e27e3fc1490751fd3e8f3c4 Mon Sep 17 00:00:00 2001 From: Quang Nguyen <41325216+quangnhat185@users.noreply.github.com> Date: Mon, 11 Oct 2021 20:58:35 +0200 Subject: [PATCH 2/3] Remove loop --- Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp b/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp index c3397b2..39093fc 100644 --- a/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp +++ b/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp @@ -54,12 +54,10 @@ bool is_unique(string str){ map character_counts; for (char c: str){ - for (auto it=character_counts.begin(); it!=character_counts.end(); it++){ - if (c==it->first){ - return false; - } + if (character_counts[c]==1){ + return false; } - character_counts[c]=1; + character_counts[c]=1; } return true; } From 85e70cca65ae1c56a584cd7534b0f73793eb2c80 Mon Sep 17 00:00:00 2001 From: Quang Nguyen <41325216+quangnhat185@users.noreply.github.com> Date: Mon, 11 Oct 2021 21:00:01 +0200 Subject: [PATCH 3/3] Fix indent --- Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp b/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp index 39093fc..baab53b 100644 --- a/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp +++ b/Ch 1.Arrays And Strings/1.Is Unique/1. Is_unique.cpp @@ -53,12 +53,14 @@ bool isUniqueChars_noDS( string str) { bool is_unique(string str){ map character_counts; + int ctr = 0; for (char c: str){ if (character_counts[c]==1){ return false; } - character_counts[c]=1; + character_counts[c]=1; } + return true; }