Timkor

plates

Nov 25th, 2020 (edited)
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function checkPlate(plate) {
  2.     //если в идеале , то надо учесть возможность для длины номера отличной от 6
  3.     plate = plate.toLowerCase();
  4.     let validLetters = 'abcehkmoptxy';
  5.     let allLetters = 'qwertyuiopasdfghjklzxcvbnm';
  6.     let validDigits = '0123456789';
  7.     let result = 100;
  8.     let validTemplate = [validLetters, validDigits, validDigits, validDigits, validLetters, validLetters]
  9.     let validLength = validTemplate.length;
  10.     let lettersNum = 0;
  11.     let isPlateStandart = true; // предположим изначально, что номер стандартный и поднимем флаг
  12.     for (let i = 0; i < validLength; i++) {
  13.         if (isPlateStandart && !validTemplate[i].includes(plate[i])) { // ключевая оптимизация решения
  14.             isPlateStandart = false; // хоть раз не соответствует правилам - все, флаг опускаем
  15.         }
  16.         if (allLetters.includes(plate[i])) {
  17.             lettersNum++; // буквы в любом случае считаем
  18.         }
  19.     }
  20.     if (!isPlateStandart) {
  21.         result = lettersNum;
  22.     }
  23.     return result;
  24.  
  25. }
  26.  
  27. let testPlate = 'Xq1q8q2qYqZ';
  28. testPlate = 'Pq2q0q4qBqT';
  29. if (checkPlate(testPlate) === 100) {
  30.     console.log(testPlate + ' test complete')
  31. } else {
  32.     console.log(testPlate + ' not standart, includes ' + checkPlate(testPlate) + ' letters');
Add Comment
Please, Sign In to add comment