بنية البيانات والخوارزمية (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 |
جافا | @توفيق ياسر، @aayushjain7، @mohitchakraverty |
ج # | @ming-tsai، @Waqar-107 |
يذهب | @ ayo-ajayi |
بايثون | @الزرنيخ-ATG، @sridhar-5 |
جافا سكريبت | @ مينغ تساي |
معهد ماساتشوستس للتكنولوجيا