Giter Site home page Giter Site logo

palindrome-bench's Introduction

About

Задача проверки строки на принадлежность к множеству палиндромов. Палиндром может быть словом, выражением, набором символов, все символы кроме букв (любого алфавита) и цифр считаются некорректными.

В репозитории находятся четыре функции, которые решают эту задачу. Две основаны на итерации указателей в while-цикле, другие две - на итерации в for-цикле.

Утвреждается, что while-цикл явлеятся более оптимальным решением.

initial- функции, о которых шла речь во время обсуждения. optimized - функции, доработанные мной после построения benchmark-а.

Допущения

Ради облегчения поиска узких мест на входные данные наложено несколько ограничений:

  • все буквы представленны в нижнем регистре
  • единственный символ, который исключается из сравнения - пробел

Виды проверок

  • lite - сравнение символа с пробелом
  • heavy - поиск вхождения символа в массив недопустимых символов
  • regexp - проверка регулярным выражением на букву латинского алфавита
  • isletter - проверка методом сравнения приведенных к нижнему регистру букв (будут совпадать для большинства алфавитов)

Как пользоваться

  • npm i - ставим benchmark, lodash и minimist
  • npm test - проверка методов на корректность
  • npm start - запуск базового бенчмарка по массиву больших вариантов с легкой проверкой на корректность, все варианты корректны

Свои параметры

  • --data=%file_name% - указать свой файл входных данных
  • --cheker=%function_name% - указать имя функции для проверки корректности символа (из пердложенных выше)

node .\index.js --checker=regexp --data=./data-small.json

Результаты бенчмарков

palindrome-bench's People

Contributors

artificial-life avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.