#####【6ku】Detect Pangram
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.
某度翻译:
拼字是一个包含字母表中每个字母至少一次的句子。例如,句子“the quick brown fox jumps over the lazy dog”是一个连字,因为它至少使用了一次字母a-Z(大小写无关)。
给定一个字符串,检测它是否是一个pangram。如果是,则返回True;如果不是,则返回False。忽略数字和标点符号。
解一:
/**
• 将字符串统一转换成大(小)写
• 求出所有字母的ASCII编码
• indexOf检索是否含有子串,否 则返回-1
**/
function isPangram(string){
var arr = string.toUpperCase().split('').map(x => x.charCodeAt())
for (let i = 65; i <= 90; i++) {
if (arr.indexOf(i) == -1) {
return false
}
}
return true
}
解二:
/**
• 取出字符串内所有的字母并统一转换成大(小)写
• set方法去重
• 计算长度是否为26
**/
function isPangram(string){
return [...new Set(string.replace(/[^a-zA-Z]/g, '').toUpperCase())].length == 26
}
解三:
/**
• every() 方法用于检测数组所有元素是否都符合指定条件
**/
function isPangram(string){
return "abcdefghijklmnopqrstuvwxyz".split("").every(function(x){
return string.toLowerCase().indexOf(x) !== -1;
});
}