Estrutura de dados e algoritmo (DSA)
O problema que está sendo contribuído deve ser um arquivo simples ( por exemplo, kruskal-algorithm.cpp
, linear-search.java
) ou um diretório mais complexo ( palindrome/
). Este é um problem
unitário.
A árvore de diretórios tem a seguinte convenção de algorithms/{language}/{category}/{problem}
, onde {language}
representa o código do idioma do problema ( por exemplo, CPlusPlus
para C++, CSharp
para C# etc.), {category}
é o tópico ou categoria do problema que está sendo contribuído ( por exemplo, strings
, sorting
, linked-lists
etc.) e {problem}
é um nome em conformidade com o problema ( por exemplo, linear-search.cpp
, palindrome
, queue-linked-list.cpp
etc.)
Um problem
de unidade deve estar em conformidade com as seguintes especificações:
palindrome/
, binary-search.cpp
etc.).-
).Se você tiver um problema que pertence a um novo tópico ou categoria diferente dos atuais:
README.md
).problem
(Documentação do Markdown).-
) (por exemplo, sorting
strings
etc.) O arquivo deve estar em conformidade com a especificação problem
e a extensão ( por exemplo, linear-search.java
, kruskal-algorithm.cpp
, count-inversions.js
etc.)
As contribuições baseadas em projetos e pastas têm especificações de contribuição um pouco mais rígidas.
A pasta deve estar em conformidade com a especificação problem
, juntamente com as seguintes especificações
Estrutura de pastas
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
Pode ser qualquer um dos seguintes
Makefile
requirements.txt
package.json
e package-lock.json
Cargo.toml
e Cargo.lock
go.mod
Os arquivos de código-fonte devem estar na pasta src/
( por exemplo, src/main.cpp
ou src/main.js
) ou na pasta raiz ( por exemplo, palindrome.go
ou App.java
), onde ext
é a extensão do arquivo para o específico linguagem de programação.
Novamente, os códigos-fonte devem estar em conformidade com uma convenção válida de estrutura de arquivos imposta pela linguagem de programação.
A programação deve manter a regra de convenção de nomenclatura de cada linguagem de programação.
Linguagem de programação | Usuários |
---|---|
C ou C++ | @Arsênico-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM, @Ashad001 |
Java | @TawfikYasser, @aayushjain7, @mohitchakraverty |
C# | @ming-tsai, @Waqar-107 |
Ir | @ayo-ajayi |
Pitão | @Arsénico-ATG, @sridhar-5 |
JavaScript | @ming-tsai |
MIT