Упражнение по написанию кода 18: (**) Сложная задача на работу со строками

Панграмма — это предложение, в котором каждая буква алфавита встречается хотя бы по одному разу по возможности без повторений. Например, предложение «The quick brown fox jumps over the lazy dog» является панграммой, поскольку в нем хотя бы один раз используются буквы от A до Z (регистр значения не имеет).

Напишите функцию isPangram, которая принимает в себя строку и возвращает логическое значение. Если строка является панграммой - вернется true, если нет - false.

Код
function isPangram(string) {

}

Пример:

isPangram(«The quick brown fox jumps over the lazy dog») => true 

isPangram(«Hello world») => false


Решение задачи


Код
'use strict';

// Вариант, когда строка переводится в нижний регистр до всех операций только 1 раз
// Это должно экономить ресурсы компьютера

function isPangram(string){
  string = string.toLowerCase();
  return "abcdefghijklmnopqrstuvwxyz".split("").every(function(x){
  return string.indexOf(x) !== -1;
  });
}

// С другим методом и строка каждый раз преобразовывается в коллбэке

function isPangram(string){
  return 'abcdefghijklmnopqrstuvwxyz'
  .split('')
  .every((x) => string.toLowerCase().includes(x));
}

// При помощи цикла

function isPangram(str) {
  letters: for (var c = 0; c < 26; c++) {
  for (let i = 0; i < str.length; i++) {
  let s = str.charCodeAt(i)
  if (s < 65 || s > 90 && s < 97 || s > 122) continue
  if (s === 65 + c || s === 97 + c) continue letters
  }
   
  return false
  }
   
  return true
}

// При помощи Set

function isPangram(string) {
  return new Set(string.toLocaleLowerCase().replace(/[^a-z]/gi, '').split('')).size === 26;
}

// С использованием регулярных выражений

function isPangram(string){
  return (string.match(/([a-z])(?!.*\1)/ig) || []).length === 26;
}

Всего комментариев: 0

Имя *:
Email *:
Код *:
Хостинг от uCoz