Description

A pangram is a sentence that contains every single letter of the alphabet at least once. For example, the sentence “The quick brown fox jumps over the lazy dog” is a pangram, because it uses the letters A-Z at least once (case is irrelevant).

Given a string, detect whether or not it is a pangram. Return True if it is, False if not. Ignore numbers and punctuation.

Solutions

Julia

# Detect-Pangram.jl

using Test


"""
检测字符串是否包含所有26个字母
"""
#> "检测字符串是否包含所有26个字母\n"
function is_pangram(str::String)::Bool
    # all() 接收 iterator,里面是一个 BitVector
    all('a':'z' .∈ lowercase(str))
end
#> is_pangram (generic function with 1 method)



@test is_pangram("The quick, brown fox jumps over the lazy dog!") == true
#> Test Passed
#>   Expression: is_pangram("The quick, brown fox jumps over the lazy dog!") == true
#>    Evaluated: true == true

R

## Detect Pangram (全字母短句)

library(tidyverse)
library(magrittr)


#' 检查字符串中是否包含全部的英文字母(忽略大小写)
is_pangram <- function(string) {
    # string 中包含的所有字母(小写)
    chars <- string %>%
        tolower() %>%
        str_split("") %>%
        unlist() %>%
        unique()

    # 向量化检查
    letters %in% chars %>%
        all()
}


library(testthat)
test_that("Example Test Cases", {
    pangram <- "The quick, brown fox jumps over the lazy dog!"
    expect_equal(is_pangram(pangram), TRUE)
})
#> Test passed 😸

JavaScript


const letters = require("../src/JavaScript/toolkit/CharacterObject").letters;

function isPangram(string) {
  // const letters = [...Array(26)].map((_, i) => String.fromCharCode(i + 97));
  return letters.every(c => string.toLowerCase().includes(c));
}


console.log(isPangram("The quick, brown fox jumps over the lazy dog!"));
#> true