From dfc7157d7babc24d91a4b74f5dd196a3336dac75 Mon Sep 17 00:00:00 2001 From: cseshohag Date: Tue, 4 Oct 2022 00:03:45 +0600 Subject: [PATCH] Added explanations in Bengali language --- README.md | 1 + README.md.bak | 143 ++++++++++++++++++++++++++++++ docs/bn/CONTRIBUTING.md | 27 ++++++ docs/bn/CONTRIBUTING.md.bak | 27 ++++++ docs/bn/README.md | 9 ++ docs/bn/README.md.bak | 28 ++++++ docs/bn/Strings/Palindrome.md | 36 ++++++++ docs/bn/Strings/Palindrome.md.bak | 36 ++++++++ 8 files changed, 307 insertions(+) create mode 100644 README.md.bak create mode 100644 docs/bn/CONTRIBUTING.md create mode 100644 docs/bn/CONTRIBUTING.md.bak create mode 100644 docs/bn/README.md create mode 100644 docs/bn/README.md.bak create mode 100644 docs/bn/Strings/Palindrome.md create mode 100644 docs/bn/Strings/Palindrome.md.bak diff --git a/README.md b/README.md index 3a653dde..34df587d 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Data structure and Algorithm (DSA) - [Turkish](./docs/tr) - [繁體中文](./docs/zh-tw) - [日本語](./docs/ja) +- [বাংলা](./docs/bn) ## Contribution Guidelines diff --git a/README.md.bak b/README.md.bak new file mode 100644 index 00000000..3a653dde --- /dev/null +++ b/README.md.bak @@ -0,0 +1,143 @@ +[![.NET](https://github.com/MakeContributions/DSA/actions/workflows/dotnet.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/dotnet.yml) +[![C++](https://github.com/MakeContributions/DSA/actions/workflows/cpp.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/cpp.yml) +[![Go](https://github.com/MakeContributions/DSA/actions/workflows/go.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/go.yml) +[![Node.js CI](https://github.com/MakeContributions/DSA/actions/workflows/node.js.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/node.js.yml) +[![Python](https://github.com/MakeContributions/DSA/actions/workflows/python.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/python.yml) +[![codespell](https://github.com/MakeContributions/DSA/actions/workflows/codespell.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/codespell.yml) +[![CodeQL](https://github.com/MakeContributions/DSA/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/codeql-analysis.yml) +[![Discord](https://img.shields.io/discord/863049619734790185?color=7389D8&logo=discord&logoColor=ffffff&label=&labelColor=6A7EC2)](https://discord.gg/ydWxdqbTyK) + +# Data Structures and Algorithm + +Data structure and Algorithm (DSA) + +## Explanations + +- [English](./docs/en) +- [Español](./docs/es) +- [Português](./docs/pt) +- [Turkish](./docs/tr) +- [繁體中文](./docs/zh-tw) +- [日本語](./docs/ja) + +## Contribution Guidelines + +### 1. Contribution Specifications + +The problem being contributed must either be a simple **file** (**Eg.** [`kruskal-algorithm.cpp`](./algorithms/CPlusPlus/Graphs/kruskal-algorithm.cpp), [`linear-search.java`](./algorithms/Java/searching/linear-search.java)) or a more complex **directory** ([`palindrome/`](./algorithms/Rust/strings/palindrome)). This is a unit `problem`. + +The directory tree has the following convention of `algorithms/{language}/{category}/{problem}`, where `{language}` represents the language code of the problem (**Eg.** `CPlusPlus` for C++, `CSharp` for C# etc.), `{category}` is the topic or category of the problem being contributed (**Eg.** `strings`, `sorting`, `linked-lists` etc.), and `{problem}` is a conforming name to the problem (**Eg.** `linear-search.cpp`, `palindrome`, `queue-linked-list.cpp` etc.) + +A unit `problem` must conform to the following specifications: + +- The name should be in lowercase. (**Eg.** `palindrome/`, `binary-search.cpp` etc.). +- Each word must be separated by a **dash** or a **hyphen** (`-`). + +**If you have a problem that belongs to a new _topic_ or _category_ than one which are present:** + +1. Create a new folder and an index for it inside (a readme, `README.md` file). +2. To each new index file, write the readme with your `problem` in it ([Markdown Documentation](https://guides.github.com/features/mastering-markdown/)). +3. The folder name can also only contain **lowercase characters** and **dashes** or **hyphens** (`-`) (Eg. `strings` `sorting` etc.) + +#### Simple (File) Contributions + +The file should conform to the `problem` specification, and the extension (**Eg.** `linear-search.java`, `kruskal-algorithm.cpp`, `count-inversions.js` etc.) + +#### Project/Folder-based Contributions + +The project and folder-based contributions have a bit more stricter contribution contribution specifications. + +The folder should conform to the `problem` specification, along with the following specifications + +**Folder Structure** + +```bash +problem-name\ +| - .gitignore +| - README.md +| - Makefile # or the specific specification/requirements/configuration file +| - src\ + | - main.ext +``` + +#### `README.md` Specification / Template + +````markdown +# + +< 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` File + +```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 +``` + +#### Build File / Specification File / Configuration File + +It can be any of the following ones + +- **C/C++**: `Makefile` +- **Python**: `requirements.txt` +- **JavaScript**: `package.json` and `package-lock.json` +- **Rust**: `Cargo.toml` and `Cargo.lock` +- **Go**: `go.mod` + +#### Source Code File + +The source code files, should either be in `src/` folder (**Eg.** `src/main.cpp` or `src/main.js`) or the root folder (**Eg.** `palindrome.go` or `App.java`) where `ext` is the file extension for the specific programming language. + +Again, the source codes must conform to a valid file structure convention that the programming language enforces. + +### 2. Naming Convention + +The programming should keep the naming convention rule of each programming language. + +### Other topic + +- [First-time contribution](CONTRIBUTING.md) + +## Reviewers + +| Programming Language | Users | +| -------------------- | ----------------------------------------------------------- | +| C or C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM, @Ashad001 | +| Java | @TawfikYasser, @aayushjain7, @mohitchakraverty | +| C# | @ming-tsai, @Waqar-107 | +| Go | @ayo-ajayi | +| Python | @Arsenic-ATG, @sridhar-5 | +| JavaScript | @ming-tsai | + +## Contributors + +<a href="https://github.com/MakeContributions/DSA/graphs/contributors"> + <img src="https://contrib.rocks/image?repo=MakeContributions/DSA" /> +</a> + +## Open Graph + +<img src="https://opengraph.github.com/3b128f0e88464a82a37f2daefd7d594c6f41a3c22b3bf94c0c030135039b5dd7/MakeContributions/DSA" /> + +## License + +[MIT](./LICENSE) diff --git a/docs/bn/CONTRIBUTING.md b/docs/bn/CONTRIBUTING.md new file mode 100644 index 00000000..3d895f01 --- /dev/null +++ b/docs/bn/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# অ্যালগরিদমের নাম + +অ্যালগরিদমের একটি সংক্ষিপ্ত বিবরণ লিখুন যেমন: +১) সময়ের জটিলতা +২) স্থান জটিলতা +৩) অ্যাপ্লিকেশন +৪) প্রতিষ্ঠাতার নাম +৫) ইত্যাদি... + +## ধাপ +অ্যালগরিদমটি পরিষ্কার, সহজ এবং বোধগম্য ধাপে বর্ণনা করুন। + +## উদাহরণ +নমুনা ইনপুট ডেটা সহ অ্যালগরিদম ট্রেস করুন। + +## বাস্তবায়ন + +প্রোগ্রামিং ভাষায় তাদের বাস্তবায়নের লিঙ্ক। +দ্রষ্টব্য: লিঙ্কটি শুধুমাত্র অ্যালগরিদম ফোল্ডারের মধ্যে থাকা উচিত। + +## ভিডিও URL + +অ্যালগরিদম ব্যাখ্যা করে এমন একটি ভিডিওর URL সংযুক্ত করুন৷ + +## অন্যান্য + +অন্য কোন তথ্য সবসময় স্বাগত জানাই এবং এই বিভাগে অন্তর্ভুক্ত করা উচিত। \ No newline at end of file diff --git a/docs/bn/CONTRIBUTING.md.bak b/docs/bn/CONTRIBUTING.md.bak new file mode 100644 index 00000000..665a4641 --- /dev/null +++ b/docs/bn/CONTRIBUTING.md.bak @@ -0,0 +1,27 @@ +# Algorithm Name + +Write a short description of the algorithm like: +1. Time Complexity +2. Space Complexity +3. Applications +4. Founder's Name +5. etc... + +## Steps +Describe the algorithm in clear, simple, and understandable steps. + +## Example +Trace the algorithm with sample input data. + +## Implementation + +Links to their implementation in programming languages. +NOTE: The link should be within the algorithms folder only. + +## Video URL + +Attach a URL of a video that explains the algorithm. + +## Others + +Any other information is always welcome and should be included in this section. diff --git a/docs/bn/README.md b/docs/bn/README.md new file mode 100644 index 00000000..770c05eb --- /dev/null +++ b/docs/bn/README.md @@ -0,0 +1,9 @@ +# অ্যালগরিদম + +## স্ট্রিং + +- [প্যালিনড্রোম](./Strings/Palindrome.md) + +## অন্যান্য + +[কিভাবে নতুন অ্যালগরিদম ডকুমেন্টেশন যোগ করতে হয়?](./CONTRIBUTING.md) diff --git a/docs/bn/README.md.bak b/docs/bn/README.md.bak new file mode 100644 index 00000000..65b4a7cf --- /dev/null +++ b/docs/bn/README.md.bak @@ -0,0 +1,28 @@ +# Algorithms + +## Lists +- [Singly linked list](./Lists/singly-linked-list.md) +- [Doubly linked list](./Lists/doubly-linked-list.md) + +## Sorting + +- [Bubble Sort](./Sorting/Bubble-Sort.md) +- [Merge Sort](./Sorting/Merge-Sort.md) +- [Selection Sort](./Sorting/Selection-Sort.md) +- [Insertion Sort](./Sorting/Insertion-Sort.md) +- [Heap Sort](./Sorting/Heap-Sort.md) +- [Quick Sort](./Sorting/Quick-Sort.md) +- [Cycle Sort](./Sorting/Cycle-Sort.md) + +## Strings + +- [Palindrome](./Strings/Palindrome.md) + +## Searching + +- [Binary Search](./Searching/Binary-Search.MD) +- [Linear Search](./Searching/Linear-Search.md) + +## Others + +[How to add new algorithm documentation?](./CONTRIBUTING.md) diff --git a/docs/bn/Strings/Palindrome.md b/docs/bn/Strings/Palindrome.md new file mode 100644 index 00000000..22f824eb --- /dev/null +++ b/docs/bn/Strings/Palindrome.md @@ -0,0 +1,36 @@ +# প্যালিন্ড্রোম +প্যালিন্ড্রোম হল একটি শব্দ, শব্দগুচ্ছ, সংখ্যা বা শব্দের ক্রম যা সামনের মতো পিছনের দিকে পড়ে। শব্দ বা অক্ষরের মধ্যে বিরাম চিহ্ন এবং স্পেস অনুমোদিত। +## ধাপ +১) সমস্ত বিরাম চিহ্ন এবং হোয়াইটস্পেস মুছে এবং সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রূপান্তর করে স্ট্রিংটি পরিষ্কার করুন। +২) পরিষ্কার স্ট্রিং বিপরীত. +৩) যদি পরিষ্কার স্ট্রিং বিপরীত স্ট্রিং এর মত হয় তাহলে আমাদের একটি প্যালিনড্রোম আছে। + +## উদাহরণ + +### একক শব্দ প্যালিনড্রোম +- নাগরিক +- স্তর +- ম্যাডাম +- রাডার + +### একাধিক শব্দ প্যালিনড্রোম +- মাথা নাড়বেন না। +- আমি করেছি, তাই না? +- আমার জিম +- একজন মানুষ, একটি পরিকল্পনা, একটি খাল - পানামা + +## বাস্তবায়ন +- [C](../../../algorithms/C/strings/palindrome.c) +- [C++](../../../algorithms/CPlusPlus/Maths/palindrome.cpp) +- [C#](../../../algorithms/CSharp/src/Strings/palindrome.cs) +- [Haskell](../../../algorithms/Haskell/strings/palindrome.hs) +- [Java](../../../algorithms/Java/strings/palindrome.java) +- [JavaScript](../../../algorithms/JavaScript/src/strings/palindrome.js) +- [Python](../../../algorithms/Python/strings/palindrome.py) +- [Rust](../../../algorithms/Rust/strings/palindrome/src/main.rs) + +## ভিডিও URL +[A coursera video explaining the palindrome Algorithm](https://www.coursera.org/lecture/program-code/palindrome-algorithm-1-zzQqs) + +## অন্যান্য +[Wikipedia](https://en.wikipedia.org/wiki/Palindrome) diff --git a/docs/bn/Strings/Palindrome.md.bak b/docs/bn/Strings/Palindrome.md.bak new file mode 100644 index 00000000..ac1325ab --- /dev/null +++ b/docs/bn/Strings/Palindrome.md.bak @@ -0,0 +1,36 @@ +# প্যালিন্ড্রোম +প্যালিন্ড্রোম হল একটি শব্দ, শব্দগুচ্ছ, সংখ্যা বা শব্দের ক্রম যা সামনের মতো পিছনের দিকে পড়ে। শব্দ বা অক্ষরের মধ্যে বিরাম চিহ্ন এবং স্পেস অনুমোদিত। +## ধাপ +১) সমস্ত বিরাম চিহ্ন এবং হোয়াইটস্পেস মুছে এবং সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রূপান্তর করে স্ট্রিংটি পরিষ্কার করুন। +২) পরিষ্কার স্ট্রিং বিপরীত. +৩) যদি পরিষ্কার স্ট্রিং বিপরীত স্ট্রিং এর মত হয় তাহলে আমাদের একটি প্যালিনড্রোম আছে। + +## উদাহরণ + +### একক শব্দ প্যালিনড্রোম +- নাগরিক +- স্তর +- ম্যাডাম +- রাডার + +### একাধিক শব্দ প্যালিনড্রোম +- মাথা নাড়বেন না। +- আমি করেছি, তাই না? +- আমার জিম +- একজন মানুষ, একটি পরিকল্পনা, একটি খাল - পানামা + +## Implementation +- [C](../../../algorithms/C/strings/palindrome.c) +- [C++](../../../algorithms/CPlusPlus/Maths/palindrome.cpp) +- [C#](../../../algorithms/CSharp/src/Strings/palindrome.cs) +- [Haskell](../../../algorithms/Haskell/strings/palindrome.hs) +- [Java](../../../algorithms/Java/strings/palindrome.java) +- [JavaScript](../../../algorithms/JavaScript/src/strings/palindrome.js) +- [Python](../../../algorithms/Python/strings/palindrome.py) +- [Rust](../../../algorithms/Rust/strings/palindrome/src/main.rs) + +## Video URL +[A coursera video explaining the palindrome Algorithm](https://www.coursera.org/lecture/program-code/palindrome-algorithm-1-zzQqs) + +## Others +[Wikipedia](https://en.wikipedia.org/wiki/Palindrome)