Estructura de datos y algoritmo (DSA)
El problema que se está aportando debe ser un archivo simple ( p. ej. kruskal-algorithm.cpp
, linear-search.java
) o un directorio más complejo ( palindrome/
). Este es un problem
unitario.
El árbol de directorios tiene la siguiente convención de algorithms/{language}/{category}/{problem}
, donde {language}
representa el código de idioma del problema ( por ejemplo, CPlusPlus
para C++, CSharp
para C#, etc.), {category}
es el tema o categoría del problema al que se contribuye ( por ejemplo, strings
, sorting
, linked-lists
etc.), y {problem}
es un nombre conforme al problema ( por ejemplo, linear-search.cpp
, palindrome
, queue-linked-list.cpp
, etc.)
Un problem
unitario debe cumplir con las siguientes especificaciones:
palindrome/
, binary-search.cpp
etc.).-
).Si tiene un problema que pertenece a un tema o categoría nueva distinta a la presente:
README.md
).problem
(Documentación de Markdown).-
) (por ejemplo, sorting
strings
, etc.) El archivo debe ajustarse a la especificación problem
y a la extensión ( p. ej., linear-search.java
, kruskal-algorithm.cpp
, count-inversions.js
, etc.)
Las contribuciones basadas en proyectos y carpetas tienen especificaciones de contribución un poco más estrictas.
La carpeta debe cumplir con la especificación problem
, junto con las siguientes especificaciones.
Estructura de carpetas
problem-name
| - .gitignore
| - README.md
| - Makefile # or the specific specification/requirements/configuration file
| - src
| - main.ext
README.md
Especificación/Plantilla # < 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
Puede ser cualquiera de los siguientes
Makefile
requirements.txt
package.json
y package-lock.json
Cargo.toml
y Cargo.lock
go.mod
Los archivos de código fuente deben estar en la carpeta src/
( por ejemplo, src/main.cpp
o src/main.js
) o en la carpeta raíz ( por ejemplo, palindrome.go
o App.java
), donde ext
es la extensión del archivo para el archivo específico. lenguaje de programación.
Nuevamente, los códigos fuente deben ajustarse a una convención de estructura de archivos válida que impone el lenguaje de programación.
La programación debe mantener la regla de convención de nomenclatura de cada lenguaje de programación.
Lenguaje de programación | Usuarios |
---|---|
C o C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM, @Ashad001 |
Java | @TawfikYasser, @aayushjain7, @mohitchakraverty |
DO# | @ming-tsai, @Waqar-107 |
Ir | @ayo-ajayi |
Pitón | @Arsénico-ATG, @sridhar-5 |
javascript | @ming-tsai |
MIT