From 366a0f18397427b61979ea27f7497718962834d8 Mon Sep 17 00:00:00 2001
From: Christian Clauss <cclauss@me.com>
Date: Tue, 26 Oct 2021 14:32:34 +0200
Subject: [PATCH] Fix validate_initial_digits of credit_card_validator.py
 (#5600)

* Fix validate_initial_digits of credit_card_validator.py

@Bhargavishnu I think that I broke the logic of validate_initial_digits which should require that credit_card_number[0] is 3 before checking that credit_card_number[1] is 4, 5, or 7.  Please verify the new changes and the new test cases to make sure that this is correct.  Thanks!

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
---
 DIRECTORY.md                     | 2 ++
 strings/credit_card_validator.py | 6 ++----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/DIRECTORY.md b/DIRECTORY.md
index e2b2442fd..f765b29b6 100644
--- a/DIRECTORY.md
+++ b/DIRECTORY.md
@@ -944,6 +944,7 @@
   * [Capitalize](https://github.com/TheAlgorithms/Python/blob/master/strings/capitalize.py)
   * [Check Anagrams](https://github.com/TheAlgorithms/Python/blob/master/strings/check_anagrams.py)
   * [Check Pangram](https://github.com/TheAlgorithms/Python/blob/master/strings/check_pangram.py)
+  * [Credit Card Validator](https://github.com/TheAlgorithms/Python/blob/master/strings/credit_card_validator.py)
   * [Detecting English Programmatically](https://github.com/TheAlgorithms/Python/blob/master/strings/detecting_english_programmatically.py)
   * [Frequency Finder](https://github.com/TheAlgorithms/Python/blob/master/strings/frequency_finder.py)
   * [Indian Phone Validator](https://github.com/TheAlgorithms/Python/blob/master/strings/indian_phone_validator.py)
@@ -961,6 +962,7 @@
   * [Rabin Karp](https://github.com/TheAlgorithms/Python/blob/master/strings/rabin_karp.py)
   * [Remove Duplicate](https://github.com/TheAlgorithms/Python/blob/master/strings/remove_duplicate.py)
   * [Reverse Letters](https://github.com/TheAlgorithms/Python/blob/master/strings/reverse_letters.py)
+  * [Reverse Long Words](https://github.com/TheAlgorithms/Python/blob/master/strings/reverse_long_words.py)
   * [Reverse Words](https://github.com/TheAlgorithms/Python/blob/master/strings/reverse_words.py)
   * [Split](https://github.com/TheAlgorithms/Python/blob/master/strings/split.py)
   * [Upper](https://github.com/TheAlgorithms/Python/blob/master/strings/upper.py)
diff --git a/strings/credit_card_validator.py b/strings/credit_card_validator.py
index 3b5a1aae6..3a08c4117 100644
--- a/strings/credit_card_validator.py
+++ b/strings/credit_card_validator.py
@@ -11,13 +11,11 @@ def validate_initial_digits(credit_card_number: str) -> bool:
     >>> valid = "4111111111111111 41111111111111 34 35 37 412345 523456 634567"
     >>> all(validate_initial_digits(cc) for cc in valid.split())
     True
-    >>> invalid = "32323 36111111111111"
+    >>> invalid = "14 25 76 32323 36111111111111"
     >>> all(validate_initial_digits(cc) is False for cc in invalid.split())
     True
     """
-    if len(credit_card_number) < 2:
-        return False
-    return credit_card_number[0] in "456" or credit_card_number[1] in "457"
+    return credit_card_number.startswith(("34", "35", "37", "4", "5", "6"))
 
 
 def luhn_validation(credit_card_number: str) -> bool: