From 701c0b1fbc8208baa04e248623f6b521b697ab6a Mon Sep 17 00:00:00 2001 From: Giorgi Beriashvili Date: Sun, 4 Oct 2020 23:27:45 +0400 Subject: [PATCH 1/2] Add the solution for "0383 - Ransom Note" problem Resolves #264 --- LeetCode/0383_RansomNote.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 LeetCode/0383_RansomNote.py diff --git a/LeetCode/0383_RansomNote.py b/LeetCode/0383_RansomNote.py new file mode 100644 index 0000000..ee10ec7 --- /dev/null +++ b/LeetCode/0383_RansomNote.py @@ -0,0 +1,13 @@ +class Solution: + def canConstruct(self, ransomNote: str, magazine: str) -> bool: + length = len(magazine) + + for index in range(len(ransomNote)): + if ransomNote[index] in magazine: + match = magazine.find(ransomNote[index]) + + magazine = magazine[:match] + magazine[match + 1 :] + else: + return False + if length - len(magazine) == len(ransomNote): + return True From 8b129b534af884a44d0ed5275c27f1a1755a10f7 Mon Sep 17 00:00:00 2001 From: Giorgi Beriashvili Date: Mon, 5 Oct 2020 00:22:56 +0400 Subject: [PATCH 2/2] Fix the solution for "0383 - Ransom Note" problem Resolves #264 --- LeetCode/0383_RansomNote.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/LeetCode/0383_RansomNote.py b/LeetCode/0383_RansomNote.py index ee10ec7..4eb197b 100644 --- a/LeetCode/0383_RansomNote.py +++ b/LeetCode/0383_RansomNote.py @@ -1,13 +1,6 @@ class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: - length = len(magazine) - - for index in range(len(ransomNote)): - if ransomNote[index] in magazine: - match = magazine.find(ransomNote[index]) - - magazine = magazine[:match] + magazine[match + 1 :] - else: - return False - if length - len(magazine) == len(ransomNote): - return True + return all( + ransomNote.count(letter) <= magazine.count(letter) + for letter in set(ransomNote) + )