#![feature(ascii_ctype)]
use std::ascii::AsciiExt;

pub fn is_pangram(words: &str) -> bool {
    let r = words
        .chars()
        .filter(|x| x.is_ascii_alphabetic())
        .map(|x| x.to_ascii_lowercase() as u8 - b'a')
        .collect::<Vec<_>>();

    let score = &mut [0u8; 26];

    for v in r {
        score[v as usize] = 1;
    }

    score.iter().all(|&x| x == 1u8)
}

#![feature(ascii_ctype)]
use std::ascii::AsciiExt;

pub fn is_pangram(words: &str) -> bool {
    let score = &mut [0u8; 26];

    for v in words.chars() {
        if !v.is_ascii_alphabetic() {
            continue;
        }

        score[v.to_ascii_lowercase() as usize - 'a' as usize] = 1;
    }

    score.iter().all(|&x| x == 1u8)
}

Remove the code in functional style
Remove the code in functional style

I like this one since it is clean and effecient
