Структура данных и алгоритм (DSA)
Проблема, о которой идет речь, должна быть либо простым файлом ( например, kruskal-algorithm.cpp
, linear-search.java
), либо более сложным каталогом ( palindrome/
). Это problem
подразделения.
Дерево каталогов имеет следующее соглашение algorithms/{language}/{category}/{problem}
, где {language}
представляет языковой код проблемы ( например, CPlusPlus
для C++, CSharp
для C# и т. д.), {category}
— это тема или категория проблемы, о которой идет речь ( например, strings
, sorting
, linked-lists
и т. д.), а {problem}
— это имя, соответствующее проблеме ( например, linear-search.cpp
, palindrome
, queue-linked-list.cpp
и т. д.)
problem
с устройством должна соответствовать следующим характеристикам:
palindrome/
, binary-search.cpp
и т. д.).-
).Если у вас возникла проблема, относящаяся к новой теме или категории, отличной от существующей:
README.md
).problem
(документация Markdown).-
) (например, sorting
strings
и т. д.). Файл должен соответствовать спецификации problem
, а расширение ( например, linear-search.java
, kruskal-algorithm.cpp
, count-inversions.js
и т. д.)
Вклады на основе проектов и папок имеют немного более строгие требования к вкладам.
Папка должна соответствовать спецификации problem
, а также следующим спецификациям.
Структура папок
problem-name
| - .gitignore
| - README.md
| - Makefile # or the specific specification/requirements/configuration file
| - src
| - main.ext
README.md
# < Title of the Problem >
< description of the problem >
## Prerequisites
- prerequisite library or package
- [ prerequisite library ] ( https://www.example.com/link-to-official-library )
## Instructions
- instructions to run the project
- < Simple and reproducible commands to execute the project >
``` bash
make # or 'cargo run', or 'dotnet run' or 'mvn exec:java' etc.
```
## Test Cases & Output < if exists>
< If you can provide test cases, describe it here, else remove this section >
.gitignore
# add all output files and build files to be excluded from git tracking
main # executable file also must have the project name
target / # the build file, for example for rust
Это может быть любой из следующих
Makefile
requirements.txt
package.json
и package-lock.json
Cargo.toml
и Cargo.lock
go.mod
Файлы исходного кода должны находиться либо в папке src/
( например, src/main.cpp
или src/main.js
), либо в корневой папке ( например, palindrome.go
или App.java
), где ext
— это расширение файла для конкретного файла. язык программирования.
Опять же, исходные коды должны соответствовать действующему соглашению о структуре файлов, которое обеспечивает язык программирования.
При программировании следует соблюдать правила соглашения об именах каждого языка программирования.
Язык программирования | Пользователи |
---|---|
С или С++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM, @Ashad001 |
Ява | @TawfikYasser, @aayushjain7, @mohitchakraverty |
С# | @мин-цай, @Вакар-107 |
Идти | @айо-аджайи |
Питон | @Мышьяк-АТГ, @sridhar-5 |
JavaScript | @мин-цай |
Массачусетский технологический институт