From ee0078220948089de1063d66a0d535dbd9589604 Mon Sep 17 00:00:00 2001 From: Sean Doherty Date: Sat, 16 May 2026 16:22:32 -0500 Subject: [PATCH] fix: keep pangram checks ASCII-scoped --- strings/is_pangram.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/strings/is_pangram.py b/strings/is_pangram.py index c8b894b7ea31..a4e13faa4f30 100644 --- a/strings/is_pangram.py +++ b/strings/is_pangram.py @@ -18,6 +18,8 @@ def is_pangram( False >>> is_pangram("The quick brown fox jumps over the la_y dog") False + >>> is_pangram("abcdefghijklmnopqrstuvwxy\\u00e9") + False >>> is_pangram() True """ @@ -44,15 +46,16 @@ def is_pangram_faster( True >>> is_pangram_faster("The quick brown fox jumps over the la_y dog") False + >>> is_pangram_faster("abcdefghijklmnopqrstuvwxy\\u00e9") + False >>> is_pangram_faster() True """ flag = [False] * 26 for char in input_str: - if char.islower(): - flag[ord(char) - 97] = True - elif char.isupper(): - flag[ord(char) - 65] = True + lower_char = char.lower() + if "a" <= lower_char <= "z": + flag[ord(lower_char) - 97] = True return all(flag) @@ -68,10 +71,12 @@ def is_pangram_fastest( True >>> is_pangram_fastest("The quick brown fox jumps over the la_y dog") False + >>> is_pangram_fastest("abcdefghijklmnopqrstuvwxy\\u00e9") + False >>> is_pangram_fastest() True """ - return len({char for char in input_str.lower() if char.isalpha()}) == 26 + return len({char for char in input_str.lower() if "a" <= char <= "z"}) == 26 def benchmark() -> None: