New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

github.com/fedoseevalex/otusgolanghomework/hw03_frequency_analysis

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/fedoseevalex/otusgolanghomework/hw03_frequency_analysis

  • v0.0.0-20210304173004-af42d56d906a
  • Source
  • Go
  • Socket score

Version published
Created
Source

Домашнее задание №3 «Частотный анализ»

Необходимо написать Go функцию, принимающую на вход строку с текстом и возвращающую слайс с 10-ю наиболее часто встречаемыми в тексте словами.

Если слова имеют одинаковую частоту, то должны быть отсортированы лексиграфически.

  • Словом считается набор символов, разделенных пробельными символами.

  • Если есть более 10 самых частотых слов (например 15 разных слов встречаются ровно 133 раза, остальные < 100), то следует вернуть 10 лексиграфически первых слов.

  • Словоформы не учитываем: "нога", "ногу", "ноги" - это разные слова.

  • Слово с большой и маленькой буквы считать за разные слова. "Нога" и "нога" - это разные слова.

  • Знаки препинания считать "буквами" слова или отдельными словами. "-" (тире) - это отдельное слово. "нога," и "нога" - это разные слова.

Пример
cat and dog, one dog,two cats and one man

Топ 7:

  • and (2)
  • one (2)
  • cat (1)
  • cats (1)
  • dog, (1)
  • dog,two (1)
  • man (1)

При необходимости можно выделять дополнительные функции / ошибки.

(*) Дополнительное задание: учитывать большие/маленькие буквы и знаки препинания:

  • "Нога" и "нога" - это одинаковые слова, "нога!", "нога", "нога," и " 'нога' " - это одинаковые слова;
  • "какой-то" и "какойто" - это разные слова, "-" (тире) - это не слово.

Критерии оценки

  • Пайплайн зелёный - 4 балла
  • Добавлены новые юнит-тесты - до 4 баллов
  • Понятность и чистота кода - до 2 баллов
  • Дополнительное задание на баллы не влияет
Зачёт от 7 баллов

Подсказки

  • regexp.MustCompile
  • strings.Split
  • sort.Slice

Частые ошибки

  • regexp.MustCompile используется в функции, а не уровне пакета - это плохо по следующим причинам:
    • производительность: нет смысла компилировать регулярку каждый раз при вызове функции;
    • функция не должна паниковать!
  • При выполнении задания со звёздочкой забывают, что тире не должно являться словом.

FAQs

Package last updated on 04 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc