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.extREADME.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
Makefilerequirements.txtpackage.json e package-lock.jsonCargo.toml e Cargo.lockgo.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