├── LICENSE
├── README.md
├── build
├── BigO.png
├── DS_BigO.png
├── LC_Patterns
│ ├── LC_1.png
│ ├── LC_10.png
│ ├── LC_2.png
│ ├── LC_3.png
│ ├── LC_4.png
│ ├── LC_5.png
│ ├── LC_6.png
│ ├── LC_7.png
│ ├── LC_8.png
│ └── LC_9.png
├── Sorting_BigO.png
├── asset-manifest.json
├── favicon.ico
├── icon128.png
├── icon16.png
├── icon32.png
├── index.html
├── manifest.json
├── robots.txt
└── static
│ ├── css
│ ├── main.4b7e76ff.css
│ └── main.4b7e76ff.css.map
│ └── js
│ ├── main.349e026b.js
│ ├── main.349e026b.js.LICENSE.txt
│ └── main.349e026b.js.map
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
├── BigO.png
├── DS_BigO.png
├── LC_Patterns
│ ├── LC_1.png
│ ├── LC_10.png
│ ├── LC_2.png
│ ├── LC_3.png
│ ├── LC_4.png
│ ├── LC_5.png
│ ├── LC_6.png
│ ├── LC_7.png
│ ├── LC_8.png
│ └── LC_9.png
├── Sorting_BigO.png
├── favicon.ico
├── icon128.png
├── icon16.png
├── icon32.png
├── icon_128.png
├── index.html
├── manifest.json
└── robots.txt
├── src
├── App.js
├── Components
│ ├── Blind75.js
│ ├── DS_BigO.js
│ └── LC_Patterns.js
├── assets
│ ├── App.css
│ └── icon.png
├── data
│ ├── java_docs.json
│ └── python_docs.json
└── index.js
└── tailwind.config.js
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 bleuscor
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | LeetPrep - Handy Interview Preparation for Developers
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | [](https://chromewebstore.google.com/detail/leetprep/golgnmppimdlhegenfaiaoahichlfjmo)
24 |
25 |
26 |
27 |
28 |
29 | ## What is LeetPrep?
30 | LeetPrep is a handy interview preparation tool for developers. It contains the most commonly used resources to prepare for tech interviews.
31 |
32 | Programming Languages Documentation (Python, Java)
33 | References to built-in functions and data structures with examples.
34 | Big O complexity tables and charts (Data Structures & Sorting)
35 | Common problem-solving techniques for Leetcode (Leetcode Patterns)
36 | Quick access to a curated list of popular interview questions (Blind 75)
37 |
38 |
39 | Having easy access to a curated set of resources is very useful while doing leetcode problems or simply studying for interviews. The one click access to the handy resources is a massive improvement for preparation!
40 |
41 | Star [this repository](hhttps://github.com/bleuscor/LeetPrep/) for further development of features. If you want a particular feature, simply [request](https://github.com/bleuscor/LeetPrep/labels/feature) for it!
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | ## Contributing
51 |
52 | LeetPrep is a fully open-source project and contributions are welcome to improve the extension.
53 |
54 | Here are a few feature opens you can get started with:
55 | - [ ] Additional Programming Languages Documentation
56 | - [ ] C++
57 | - [ ] Javascript
58 | - [ ] Ruby
59 | - [ ] C#
60 | - [ ] Go
61 | - [ ] SQL Documentation
62 | - [ ] Data Science Section
63 | - [ ] Pandas Documentation
64 | - [ ] Numpy Documentation
65 | - [ ] Add difficulty level to Blind 75 questions
66 |
67 |
68 | If you have any other new suggestions or feature requests, feel free to open an issue or submit a pull request.
69 |
70 |
71 |
72 | ### Local Development
73 |
74 |
75 | Fork this repo and clone to your local machine
76 | Go to chrome://extensions
77 | Enable Developer mode by toggling the switch on top right corner
78 | Click 'Load unpacked'
79 | Select the "build" folder at the root of this repo
80 | Local development extension should be loaded now
81 |
82 |
83 | Commands available:
84 |
85 | ```
86 | npm i Install dependencies
87 | npm run start Start the development server at localhost
88 | npm run build Publish production ready extension to the build folder
89 | ```
90 |
91 | When installing node modules, if there is a dependency errror, run `npm config set legacy-peer-deps true` then run `npm i`.
92 |
93 |
94 | ### Commit Convention
95 | Before you create a Pull Request, please check that you use the [conventional commits format.](https://www.conventionalcommits.org/en/v1.0.0/)
96 |
97 | It should be in the form `category(scope or module): message` in your commit message from the following categories:
98 |
99 | - `feat / feature`: all changes that introduce completely new code or new features
100 |
101 | - `fix / bug`: all changes that fix a bug
102 |
103 | - `refactor`: any code related change that is not a fix nor a feature
104 |
105 | - `docs`: changing existing or creating new documentation (i.e. README, docs for usage of a lib or cli usage)
106 |
107 | - `chore`: all changes to the repository that do not fit into any of the above categories
108 |
109 | e.g. `feat(editor): improve tab switching speed`
110 |
--------------------------------------------------------------------------------
/build/BigO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/BigO.png
--------------------------------------------------------------------------------
/build/DS_BigO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/DS_BigO.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_1.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_10.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_2.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_3.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_4.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_5.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_6.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_7.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_8.png
--------------------------------------------------------------------------------
/build/LC_Patterns/LC_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/LC_Patterns/LC_9.png
--------------------------------------------------------------------------------
/build/Sorting_BigO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/Sorting_BigO.png
--------------------------------------------------------------------------------
/build/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": {
3 | "main.css": "/static/css/main.4b7e76ff.css",
4 | "main.js": "/static/js/main.349e026b.js",
5 | "index.html": "/index.html",
6 | "main.4b7e76ff.css.map": "/static/css/main.4b7e76ff.css.map",
7 | "main.349e026b.js.map": "/static/js/main.349e026b.js.map"
8 | },
9 | "entrypoints": [
10 | "static/css/main.4b7e76ff.css",
11 | "static/js/main.349e026b.js"
12 | ]
13 | }
--------------------------------------------------------------------------------
/build/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/favicon.ico
--------------------------------------------------------------------------------
/build/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/icon128.png
--------------------------------------------------------------------------------
/build/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/icon16.png
--------------------------------------------------------------------------------
/build/icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/build/icon32.png
--------------------------------------------------------------------------------
/build/index.html:
--------------------------------------------------------------------------------
1 | LeetPrep You need to enable JavaScript to run this app.
--------------------------------------------------------------------------------
/build/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LeetPrep",
3 | "description": "Handy Interview Preparation for Developers",
4 | "version": "1.0.0",
5 | "manifest_version": 3,
6 | "author": "Onsites.fyi",
7 | "icons": {
8 | "16": "icon16.png",
9 | "32": "icon32.png",
10 | "48": "icon128.png",
11 | "128": "icon128.png"
12 | },
13 | "action": {
14 | "default_popup": "index.html",
15 | "default_icon": "icon128.png"
16 | }
17 | }
--------------------------------------------------------------------------------
/build/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/build/static/css/main.4b7e76ff.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap);
2 | /*
3 | ! tailwindcss v3.1.3 | MIT License | https://tailwindcss.com
4 | */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.relative{position:relative}.right-4{right:1rem}.bottom-4{bottom:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mr-3{margin-right:.75rem}.ml-auto{margin-left:auto}.ml-3{margin-left:.75rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mr-5{margin-right:1.25rem}.mt-5{margin-top:1.25rem}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-6{height:1.5rem}.h-4{height:1rem}.h-auto{height:auto}.w-6{width:1.5rem}.w-4{width:1rem}.w-\[95\%\]{width:95%}.w-\[70\%\]{width:70%}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-1{gap:.25rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-2xl{border-radius:1rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border-2{border-width:2px}.border-b-2{border-bottom-width:2px}.border-zinc-700{--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity))}.border-b-zinc-200{--tw-border-opacity:1;border-bottom-color:rgb(228 228 231/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-blue-800{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity))}.bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity))}.bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.p-6{padding:1.5rem}.p-4{padding:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-0{padding-bottom:0;padding-top:0}.pb-8{padding-bottom:2rem}.pb-6{padding-bottom:1.5rem}.pt-3{padding-top:.75rem}.pb-2{padding-bottom:.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[13px\]{font-size:13px}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-bold{font-weight:700}.tracking-wide{letter-spacing:.025em}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity))}.text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity))}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{-webkit-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body{font-family:Poppins,sans-serif}.App{--tw-border-opacity:1;border:2px solid;border-color:rgb(228 228 231/var(--tw-border-opacity));min-height:600px;min-width:700px;width:700px}@media (prefers-color-scheme:dark){.App{--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity))}}.card{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity));border-radius:.75rem;border-width:2px}@media (prefers-color-scheme:dark){.card{--tw-border-opacity:1;border-color:rgb(39 39 42/var(--tw-border-opacity))}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{--tw-bg-opacity:1;background-color:rgb(113 113 122/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){::-webkit-scrollbar-track{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity))}}::-webkit-scrollbar-thumb{--tw-bg-opacity:1;background-color:rgb(212 212 216/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{--tw-bg-opacity:1;background-color:rgb(113 113 122/var(--tw-bg-opacity))}}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb:hover{--tw-bg-opacity:1;background-color:rgb(161 161 170/var(--tw-bg-opacity))}}.copy-container-translate{-webkit-transform:translateY(60px);transform:translateY(60px)}.placeholder\:text-zinc-600::-webkit-input-placeholder{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity))}.placeholder\:text-zinc-600:-ms-input-placeholder{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity))}.placeholder\:text-zinc-600::placeholder{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity))}.last\:border-0:last-child{border-width:0}.focus-within\:border-blue-500:focus-within{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.focus-within\:text-blue-500:focus-within{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.hover\:bg-zinc-200:hover{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity))}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.hover\:text-purple-600:hover{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity))}.hover\:text-sky-600:hover{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.dark\:border-b-zinc-800{--tw-border-opacity:1;border-bottom-color:rgb(39 39 42/var(--tw-border-opacity))}.dark\:border-b-zinc-700{--tw-border-opacity:1;border-bottom-color:rgb(63 63 70/var(--tw-border-opacity))}.dark\:bg-zinc-900{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity))}.dark\:bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity))}.dark\:text-zinc-200{--tw-text-opacity:1;color:rgb(228 228 231/var(--tw-text-opacity))}.dark\:hover\:bg-zinc-800:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
5 | /*# sourceMappingURL=main.4b7e76ff.css.map*/
--------------------------------------------------------------------------------
/build/static/css/main.4b7e76ff.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"static/css/main.4b7e76ff.css","mappings":"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","sources":["assets/App.css"],"sourcesContent":["@import url(\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap\");\n\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nbody {\n font-family: \"Poppins\", sans-serif;\n}\n\n.App {\n min-height: 600px;\n min-width: 700px;\n width: 700px;\n border: 2px solid;\n @apply dark:border-zinc-800 border-zinc-200;\n}\n\n.card {\n @apply dark:border-zinc-800 border-zinc-200 border-2 rounded-xl;\n}\n\n/* width */\n::-webkit-scrollbar {\n width: 4px;\n}\n\n/* Track */\n::-webkit-scrollbar-track {\n @apply dark:bg-zinc-700 bg-zinc-500;\n}\n\n/* Handle */\n::-webkit-scrollbar-thumb {\n @apply dark:bg-zinc-500 bg-zinc-300;\n}\n\n/* Handle on hover */\n::-webkit-scrollbar-thumb:hover {\n @apply dark:bg-zinc-400 bg-zinc-200;\n}\n\n.copy-container-translate {\n transform: translateY(60px);\n}"],"names":[],"sourceRoot":""}
--------------------------------------------------------------------------------
/build/static/js/main.349e026b.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
2 |
3 | /**
4 | * @license React
5 | * react-dom.production.min.js
6 | *
7 | * Copyright (c) Facebook, Inc. and its affiliates.
8 | *
9 | * This source code is licensed under the MIT license found in the
10 | * LICENSE file in the root directory of this source tree.
11 | */
12 |
13 | /**
14 | * @license React
15 | * react-jsx-runtime.production.min.js
16 | *
17 | * Copyright (c) Facebook, Inc. and its affiliates.
18 | *
19 | * This source code is licensed under the MIT license found in the
20 | * LICENSE file in the root directory of this source tree.
21 | */
22 |
23 | /**
24 | * @license React
25 | * react.production.min.js
26 | *
27 | * Copyright (c) Facebook, Inc. and its affiliates.
28 | *
29 | * This source code is licensed under the MIT license found in the
30 | * LICENSE file in the root directory of this source tree.
31 | */
32 |
33 | /**
34 | * @license React
35 | * scheduler.production.min.js
36 | *
37 | * Copyright (c) Facebook, Inc. and its affiliates.
38 | *
39 | * This source code is licensed under the MIT license found in the
40 | * LICENSE file in the root directory of this source tree.
41 | */
42 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "leetprep",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@testing-library/jest-dom": "^5.16.4",
7 | "@testing-library/react": "^13.3.0",
8 | "@testing-library/user-event": "^13.5.0",
9 | "react": "^18.2.0",
10 | "react-dom": "^18.2.0",
11 | "react-icons": "^5.2.1",
12 | "react-responsive-masonry": "^2.1.4",
13 | "react-scripts": "5.0.1",
14 | "web-vitals": "^2.1.4"
15 | },
16 | "scripts": {
17 | "start": "react-scripts start",
18 | "build": "react-scripts build",
19 | "test": "react-scripts test",
20 | "eject": "react-scripts eject"
21 | },
22 | "eslintConfig": {
23 | "extends": [
24 | "react-app",
25 | "react-app/jest"
26 | ]
27 | },
28 | "browserslist": {
29 | "production": [
30 | ">0.2%",
31 | "not dead",
32 | "not op_mini all"
33 | ],
34 | "development": [
35 | "last 1 chrome version",
36 | "last 1 firefox version",
37 | "last 1 safari version"
38 | ]
39 | },
40 | "devDependencies": {
41 | "autoprefixer": "^10.4.7",
42 | "postcss": "^8.4.14",
43 | "tailwindcss": "^3.1.3"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/BigO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/BigO.png
--------------------------------------------------------------------------------
/public/DS_BigO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/DS_BigO.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_1.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_10.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_2.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_3.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_4.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_5.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_6.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_7.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_8.png
--------------------------------------------------------------------------------
/public/LC_Patterns/LC_9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/LC_Patterns/LC_9.png
--------------------------------------------------------------------------------
/public/Sorting_BigO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/Sorting_BigO.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/favicon.ico
--------------------------------------------------------------------------------
/public/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/icon128.png
--------------------------------------------------------------------------------
/public/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/icon16.png
--------------------------------------------------------------------------------
/public/icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/icon32.png
--------------------------------------------------------------------------------
/public/icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/public/icon_128.png
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | LeetPrep
28 |
29 |
30 | You need to enable JavaScript to run this app.
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LeetPrep",
3 | "description": "Handy Interview Preparation for Developers",
4 | "version": "1.0.0",
5 | "manifest_version": 3,
6 | "author": "Onsites.fyi",
7 | "icons": {
8 | "16": "icon16.png",
9 | "32": "icon32.png",
10 | "48": "icon128.png",
11 | "128": "icon128.png"
12 | },
13 | "action": {
14 | "default_popup": "index.html",
15 | "default_icon": "icon128.png"
16 | }
17 | }
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import "./assets/App.css";
2 | import Masonry from "react-responsive-masonry";
3 | import { useEffect, useState } from "react";
4 | import { FaPython, FaJava, FaCode } from "react-icons/fa";
5 | import { PiChartLineUpBold } from "react-icons/pi";
6 | import { TbColorFilter } from "react-icons/tb";
7 | import { SiLeetcode } from "react-icons/si";
8 |
9 | // Data
10 | import pythonDocs from "./data/python_docs.json";
11 | import javaDocs from "./data/java_docs.json";
12 |
13 | // Components
14 | import DS_BigO from "./Components/DS_BigO";
15 | import LC_Patterns from "./Components/LC_Patterns";
16 | import Blind75 from "./Components/Blind75";
17 |
18 | function App() {
19 | const [activeDiv, setActiveDiv] = useState("docsDiv");
20 | const [documentation, setDocumentation] = useState(pythonDocs);
21 | const [selectedLanguage, setSelectedLanguage] = useState("Python");
22 | const [docsData, setDocsData] = useState(pythonDocs);
23 | const [searchTerm, setSearchTerm] = useState("");
24 |
25 | const handleButtonClick = (language) => {
26 | setSelectedLanguage(language);
27 |
28 | if (language === "Python") {
29 | setDocumentation(pythonDocs);
30 | setDocsData(pythonDocs);
31 | } else if (language === "Java") {
32 | setDocumentation(javaDocs);
33 | setDocsData(javaDocs);
34 | }
35 | };
36 |
37 | useEffect(() => {
38 | document.querySelector("html").classList.add("dark");
39 | document.querySelector("body").classList.add("dark:bg-zinc-900");
40 | document.querySelector("body").classList.add("bg-white");
41 | }, []);
42 |
43 | const expandView = (e) => {
44 | e.parentNode.querySelector(".content").classList.toggle("hidden");
45 | };
46 |
47 | const copyToClipboard = (text) => {
48 | navigator.clipboard.writeText(text).then(() => {
49 | document
50 | .querySelector(".copy-container")
51 | .classList.remove("copy-container-translate");
52 | let activeTime = 2000;
53 | setTimeout(() => {
54 | document
55 | .querySelector(".copy-container")
56 | .classList.add("copy-container-translate");
57 | }, activeTime);
58 | });
59 | };
60 |
61 | /*
62 | Filters Data based on query compared with multiple Fields i.e
63 | title, content.title, content.description, content.table
64 | */
65 | useEffect(() => {
66 | (async () => {
67 | const textSearch = (searchTerm, data) => {
68 | if (searchTerm.length < 2) {
69 | return documentation;
70 | }
71 | for (let i = data.length - 1; i >= 0; i--) {
72 | let item = data[i];
73 | if (!item.title.toLowerCase().includes(searchTerm)) {
74 | if (
75 | JSON.stringify(item.content).toLowerCase().includes(searchTerm)
76 | ) {
77 | for (let j = item.content.length - 1; j >= 0; j--) {
78 | let content = item.content[j];
79 | // console.log(searchTerm);
80 | if (
81 | !content.title.toLowerCase().includes(searchTerm) &&
82 | !content.description.toLowerCase().includes(searchTerm)
83 | ) {
84 | let filteredTable = content.table.filter((x) => {
85 | return x.join("").toLowerCase().includes(searchTerm);
86 | });
87 | if (filteredTable.length === 0) {
88 | item.content.splice(j, 1);
89 | } else {
90 | item.content[j].table = filteredTable;
91 | }
92 | }
93 | }
94 | if (item.content.length === 0) {
95 | data.splice(i, 1);
96 | } else {
97 | data[i] = item;
98 | }
99 | } else {
100 | data.splice(i, 1);
101 | }
102 | }
103 | }
104 | return data;
105 | };
106 |
107 | setDocsData(
108 | await textSearch(
109 | searchTerm.trim().toLowerCase(),
110 | JSON.parse(JSON.stringify(documentation))
111 | )
112 | );
113 | })();
114 | }, [searchTerm]);
115 |
116 | const searchClass = (query) => {
117 | setSearchTerm(query);
118 | };
119 |
120 | return (
121 |
122 |
123 |
124 |
125 | LeetPrep
126 |
127 |
133 |
139 |
140 |
141 |
142 |
143 |
144 |
searchClass(e.currentTarget.value)}
147 | type="text"
148 | className="text-sm text-zinc-600 dark:text-white bg-transparent outline-none placeholder:text-zinc-600"
149 | placeholder="Search"
150 | />
151 |
159 |
164 |
165 |
166 |
167 |
168 |
169 | {/* Navigation Bar */}
170 |
171 |
setActiveDiv("docsDiv")}
178 | >
179 |
180 | Documentation
181 |
182 |
setActiveDiv("bigODiv")}
189 | >
190 |
191 | Big-O Complexity
192 |
193 |
setActiveDiv("lcDiv")}
200 | >
201 |
202 | LC Patterns
203 |
204 |
setActiveDiv("blindDiv")}
211 | >
212 |
213 | Blind 75
214 |
215 |
216 |
217 |
218 | {activeDiv === "docsDiv" && (
219 |
220 | {/* Documentation Selection */}
221 |
222 |
223 | handleButtonClick("Python")}
230 | >
231 |
232 | Python
233 |
234 |
235 | handleButtonClick("Java")}
242 | >
243 |
244 | Java
245 |
246 |
247 |
248 | {docsData.length > 0 &&
249 | docsData.map((item, index) => (
250 |
251 |
252 |
253 | {item.title}
254 |
255 |
256 |
257 | {item.content.map((content, index) => (
258 | expandView(e.target)}
262 | >
263 | {/* Toggle */}
264 |
275 |
276 | {/* Toggle Children */}
277 |
278 |
279 |
280 | {content.description}
281 |
282 |
283 |
321 |
322 |
323 | ))}
324 |
325 |
326 | ))}
327 |
328 |
329 | )}
330 |
331 | {activeDiv === "bigODiv" && (
332 |
333 |
334 |
335 | )}
336 | {activeDiv === "lcDiv" && (
337 |
338 |
339 |
340 | )}
341 | {activeDiv === "blindDiv" && (
342 |
343 |
344 |
345 | )}
346 |
347 |
348 | {docsData.length <= 0 && (
349 |
350 |
Not Found
351 |
352 | Please try again with different keywords.
353 |
354 |
355 | )}
356 |
357 |
358 |
359 |
360 | Copied!
361 |
362 |
363 |
364 | );
365 | }
366 |
367 | export default App;
368 |
--------------------------------------------------------------------------------
/src/Components/Blind75.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | const Blind75 = () => {
4 | return (
5 |
6 |
7 |
58 |
59 |
89 |
90 |
91 |
92 | Dynamic Programming
93 |
94 |
149 |
150 |
151 |
196 |
197 |
198 |
Interval
199 |
226 |
227 |
228 |
229 |
Linked List
230 |
262 |
263 |
264 |
319 |
320 |
393 |
413 |
438 |
439 |
440 | );
441 | };
442 |
443 | export default Blind75;
444 |
--------------------------------------------------------------------------------
/src/Components/DS_BigO.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | const DS_BigO = () => {
4 | return (
5 |
34 | );
35 | };
36 |
37 | export default DS_BigO;
38 |
--------------------------------------------------------------------------------
/src/Components/LC_Patterns.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | const LC_Patterns = () => {
4 | const imageNumbers = Array.from({ length: 10 }, (_, i) => i + 1);
5 |
6 | return (
7 |
8 | {imageNumbers.map((num) => (
9 |
15 | ))}
16 |
17 | );
18 | };
19 |
20 | export default LC_Patterns;
21 |
--------------------------------------------------------------------------------
/src/assets/App.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");
2 |
3 | @tailwind base;
4 | @tailwind components;
5 | @tailwind utilities;
6 |
7 | body {
8 | font-family: "Poppins", sans-serif;
9 | }
10 |
11 | .App {
12 | min-height: 600px;
13 | min-width: 700px;
14 | width: 700px;
15 | border: 2px solid;
16 | @apply dark:border-zinc-800 border-zinc-200;
17 | }
18 |
19 | .card {
20 | @apply dark:border-zinc-800 border-zinc-200 border-2 rounded-xl;
21 | }
22 |
23 | /* width */
24 | ::-webkit-scrollbar {
25 | width: 4px;
26 | }
27 |
28 | /* Track */
29 | ::-webkit-scrollbar-track {
30 | @apply dark:bg-zinc-700 bg-zinc-500;
31 | }
32 |
33 | /* Handle */
34 | ::-webkit-scrollbar-thumb {
35 | @apply dark:bg-zinc-500 bg-zinc-300;
36 | }
37 |
38 | /* Handle on hover */
39 | ::-webkit-scrollbar-thumb:hover {
40 | @apply dark:bg-zinc-400 bg-zinc-200;
41 | }
42 |
43 | .copy-container-translate {
44 | transform: translateY(60px);
45 | }
--------------------------------------------------------------------------------
/src/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bleuscor/LeetPrep/ec3368d1fb17ef7dbca72c42730231ba693f9dfb/src/assets/icon.png
--------------------------------------------------------------------------------
/src/data/java_docs.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title": "Java Strings",
4 | "content": [
5 | {
6 | "title": "String Creation",
7 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html",
8 | "description": "Create strings in Java using the String class constructor or string literals.",
9 | "table": [
10 | [
11 | "String str1 = new String(\"Hello\");",
12 | "",
13 | "Create a string using the String class constructor."
14 | ],
15 | [
16 | "String str2 = \"World\";",
17 | "",
18 | "Create a string using a string literal."
19 | ]
20 | ]
21 | },
22 | {
23 | "title": "String Concatenation",
24 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#concat-java.lang.String-",
25 | "description": "Concatenate strings in Java using the concat() method or the '+' operator.",
26 | "table": [
27 | [
28 | "String result = str1.concat(str2);",
29 | "",
30 | "Concatenate two strings using the concat() method."
31 | ],
32 | [
33 | "String result = str1 + str2;",
34 | "",
35 | "Concatenate two strings using the '+' operator."
36 | ]
37 | ]
38 | },
39 | {
40 | "title": "String Length",
41 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#length--",
42 | "description": "Get the length of a string in Java using the length() method.",
43 | "table": [
44 | [
45 | "int length = str1.length();",
46 | "",
47 | "Get the length of the string 'str1'."
48 | ]
49 | ]
50 | },
51 | {
52 | "title": "String Comparison",
53 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#compareTo-java.lang.String-",
54 | "description": "Compare strings in Java using the compareTo() method or the equals() method.",
55 | "table": [
56 | [
57 | "int result = str1.compareTo(str2);",
58 | "",
59 | "Compare two strings using the compareTo() method."
60 | ],
61 | [
62 | "boolean isEqual = str1.equals(str2);",
63 | "",
64 | "Check if two strings are equal using the equals() method."
65 | ]
66 | ]
67 | },
68 | {
69 | "title": "Substring Extraction",
70 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#substring-int-int-",
71 | "description": "Extract substrings from a string in Java using the substring() method.",
72 | "table": [
73 | [
74 | "String subStr = str1.substring(1, 3);",
75 | "",
76 | "Extract a substring from 'str1' starting at index 1 and ending at index 2 (exclusive)."
77 | ]
78 | ]
79 | },
80 | {
81 | "title": "String Splitting",
82 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-",
83 | "description": "Split a string into substrings based on a delimiter using the split() method.",
84 | "table": [
85 | [
86 | "String[] parts = str1.split(\"o\");",
87 | "",
88 | "Split 'str1' into substrings using 'o' as the delimiter."
89 | ]
90 | ]
91 | },
92 | {
93 | "title": "String Conversion",
94 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#valueOf-java.lang.Object-",
95 | "description": "Convert other data types to strings in Java using the valueOf() method.",
96 | "table": [
97 | [
98 | "String str = String.valueOf(123);",
99 | "",
100 | "Convert an integer to a string."
101 | ]
102 | ]
103 | },
104 | {
105 | "title": "String Formatting",
106 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-",
107 | "description": "Format strings in Java using the format() method.",
108 | "table": [
109 | [
110 | "String formattedStr = String.format(\"%s %d\", \"Hello\", 123);",
111 | "",
112 | "Format a string with placeholders."
113 | ]
114 | ]
115 | }
116 | ]
117 | },
118 | {
119 | "title": "Numeric Types",
120 | "content": [
121 | {
122 | "title": "Integer Types",
123 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html",
124 | "description": "Java provides several integer types to represent whole numbers of different sizes.",
125 | "table": [
126 | [
127 | "byte",
128 | "-128 to 127",
129 | "8-bit signed integer"
130 | ],
131 | [
132 | "short",
133 | "-32,768 to 32,767",
134 | "16-bit signed integer"
135 | ],
136 | [
137 | "int",
138 | "-2^31 to 2^31-1",
139 | "32-bit signed integer"
140 | ],
141 | [
142 | "long",
143 | "-2^63 to 2^63-1",
144 | "64-bit signed integer"
145 | ]
146 | ]
147 | },
148 | {
149 | "title": "Floating-Point Types",
150 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html",
151 | "description": "Java provides two floating-point types to represent decimal numbers with different precision and range.",
152 | "table": [
153 | [
154 | "float",
155 | "",
156 | "32-bit single-precision floating-point"
157 | ],
158 | [
159 | "double",
160 | "",
161 | "64-bit double-precision floating-point"
162 | ]
163 | ]
164 | },
165 | {
166 | "title": "Arithmetic Operations",
167 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html",
168 | "description": "Perform arithmetic operations such as addition, subtraction, multiplication, and division on numeric types in Java.",
169 | "table": [
170 | [
171 | "int sum = num1 + num2;",
172 | "",
173 | "Addition"
174 | ],
175 | [
176 | "int difference = num1 - num2;",
177 | "",
178 | "Subtraction"
179 | ],
180 | [
181 | "int product = num1 * num2;",
182 | "",
183 | "Multiplication"
184 | ],
185 | [
186 | "int quotient = num1 / num2;",
187 | "",
188 | "Integer Division"
189 | ],
190 | [
191 | "double result = (double) num1 / num2;",
192 | "",
193 | "Floating-Point Division"
194 | ],
195 | [
196 | "int remainder = num1 % num2;",
197 | "",
198 | "Modulus (Remainder)"
199 | ]
200 | ]
201 | },
202 | {
203 | "title": "Increment and Decrement",
204 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html",
205 | "description": "Increment and decrement numeric values in Java using the increment (++) and decrement (--) operators.",
206 | "table": [
207 | [
208 | "num++;",
209 | "",
210 | "Increment by 1"
211 | ],
212 | [
213 | "num--;",
214 | "",
215 | "Decrement by 1"
216 | ]
217 | ]
218 | }
219 | ]
220 | },
221 | {
222 | "title": "Java Control Flow",
223 | "content": [
224 | {
225 | "title": "Conditional Statements",
226 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html",
227 | "description": "Execute code based on certain conditions using if, if-else, if-else-if, and switch statements.",
228 | "table": [
229 | [
230 | "int x = 10;",
231 | "",
232 | "Declare an integer variable 'x' with a value of 10."
233 | ],
234 | [
235 | "if (x > 0) {...}",
236 | "",
237 | "Check if 'x' is greater than 0."
238 | ],
239 | [
240 | "else if (x < 0)",
241 | "",
242 | "Check if 'x' is less than 0."
243 | ],
244 | [
245 | "else {}",
246 | "",
247 | "Does not match any other condition."
248 | ]
249 | ]
250 | },
251 | {
252 | "title": "Looping Statements",
253 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html",
254 | "description": "Repeat a block of code multiple times using while, do-while, and for loops.",
255 | "table": [
256 | [
257 | "while (i < 5) {...}",
258 | "",
259 | "Print numbers from 0 to 4 using a while loop."
260 | ],
261 | [
262 | "do {..} while (i < 5);",
263 | "",
264 | "Print numbers from 0 to 4 using a do-while loop."
265 | ],
266 | [
267 | "for (int j = 0; j < 5; j++) {...}",
268 | "",
269 | "Print numbers from 0 to 4 using a for loop."
270 | ]
271 | ]
272 | },
273 | {
274 | "title": "Branching Statements",
275 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html",
276 | "description": "Control the flow of execution using break and continue statements.",
277 | "table": [
278 | [
279 | "break",
280 | "",
281 | "Exit the loop when a condition is met."
282 | ],
283 | [
284 | "continue",
285 | "",
286 | "Skip the iteration when 'i' is equal to 5."
287 | ]
288 | ]
289 | }
290 | ]
291 | },
292 | {
293 | "title": "Arrays",
294 | "content": [
295 | {
296 | "title": "Array Declaration & Initialization",
297 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html",
298 | "description": "Declare and initialize arrays in Java to store multiple elements of the same type.",
299 | "table": [
300 | [
301 | "int[] numbers = new int[5];",
302 | "",
303 | "Declare an integer array 'numbers' with a length of 5 elements."
304 | ],
305 | [
306 | "int[] numbers = {1, 2, 3, 4, 5};",
307 | "",
308 | "Declare and initialize an integer array 'numbers' with values 1, 2, 3, 4, and 5."
309 | ],
310 | [
311 | "String[] names = new String[] {\"Alice\", \"Bob\", \"Carol\"};",
312 | "",
313 | "Declare and initialize a String array 'names' with values \"Alice\", \"Bob\", and \"Carol\"."
314 | ]
315 | ]
316 | },
317 | {
318 | "title": "Array Access and Modification",
319 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html",
320 | "description": "Access and modify elements of an array in Java using array indices.",
321 | "table": [
322 | [
323 | "int value = numbers[2];",
324 | "",
325 | "Access the third element of the 'numbers' array."
326 | ],
327 | [
328 | "numbers[2] = 10;",
329 | "",
330 | "Modify the value of the third element of the 'numbers' array to 10."
331 | ]
332 | ]
333 | },
334 | {
335 | "title": "Array Length",
336 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html",
337 | "description": "Get the length of an array in Java using the 'length' property.",
338 | "table": [
339 | [
340 | "int length = numbers.length;",
341 | "",
342 | "Get the length of the 'numbers' array."
343 | ]
344 | ]
345 | },
346 | {
347 | "title": "Iterating Over Arrays",
348 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html",
349 | "description": "Iterate over elements of an array in Java using loops.",
350 | "table": [
351 | [
352 | "for (int i = 0; i < numbers.length; i++) {...}",
353 | "",
354 | "Iterate over the 'numbers' array using a for loop."
355 | ]
356 | ]
357 | },
358 | {
359 | "title": "Array Copying",
360 | "docs": "https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html",
361 | "description": "Copy elements of one array to another in Java using the 'System.arraycopy()' method or 'Arrays.copyOf()' method.",
362 | "table": [
363 | [
364 | "int[] copy = new int[numbers.length];",
365 | "",
366 | "Create a new array 'copy' with the same length as the 'numbers' array."
367 | ],
368 | [
369 | "System.arraycopy(numbers, 0, copy, 0, numbers.length);",
370 | "",
371 | "Copy elements from the 'numbers' array to the 'copy' array."
372 | ]
373 | ]
374 | }
375 | ]
376 | },
377 | {
378 | "title": "ArrayList",
379 | "content": [
380 | {
381 | "title": "ArrayList Declaration & Initialization",
382 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html",
383 | "description": "Declare and initialize ArrayList in Java to store a dynamic list of elements.",
384 | "table": [
385 | [
386 | "ArrayList numbers = new ArrayList<>();",
387 | "",
388 | "Declare an ArrayList 'numbers' to store Integer elements."
389 | ],
390 | [
391 | "ArrayList names = new ArrayList<>(Arrays.asList(\"Alice\", \"Bob\", \"Carol\"));",
392 | "",
393 | "Declare and initialize an ArrayList 'names' with values \"Alice\", \"Bob\", and \"Carol\"."
394 | ]
395 | ]
396 | },
397 | {
398 | "title": "ArrayList Operations",
399 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html",
400 | "description": "Perform various operations on ArrayList in Java such as adding, removing, accessing elements, and checking size.",
401 | "table": [
402 | [
403 | "numbers.add(10);",
404 | "",
405 | "Add an element '10' to the end of the 'numbers' ArrayList."
406 | ],
407 | [
408 | "names.remove(\"Bob\");",
409 | "",
410 | "Remove the element \"Bob\" from the 'names' ArrayList."
411 | ],
412 | [
413 | "String name = names.get(0);",
414 | "",
415 | "Get the first element of the 'names' ArrayList."
416 | ],
417 | [
418 | "int size = numbers.size();",
419 | "",
420 | "Get the size of the 'numbers' ArrayList."
421 | ]
422 | ]
423 | },
424 | {
425 | "title": "Iterating Over ArrayList",
426 | "docs": "",
427 | "description": "Iterate over elements of ArrayList in Java using loops or the forEach() method.",
428 | "table": [
429 | [
430 | "for (int i = 0; i < numbers.size(); i++) {...}",
431 | "",
432 | "Iterate over the 'numbers' ArrayList using a for loop."
433 | ],
434 | [
435 | "for (String name : names) {...}",
436 | "",
437 | "Iterate over the 'names' ArrayList using a for-each loop."
438 | ],
439 | [
440 | "names.forEach(name -> println(name));",
441 | "",
442 | "Iterate over the 'names' ArrayList using the forEach() method and a lambda expression."
443 | ]
444 | ]
445 | },
446 | {
447 | "title": "ArrayList Sorting",
448 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#sort-java.util.List-",
449 | "description": "Sort elements of ArrayList in Java using the Collections.sort() method.",
450 | "table": [
451 | [
452 | "Collections.sort(numbers);",
453 | "",
454 | "Sort the elements of the 'numbers' ArrayList in natural order."
455 | ]
456 | ]
457 | },
458 | {
459 | "title": "ArrayList Conversion",
460 | "docs": "",
461 | "description": "Convert ArrayList to an array or vice versa in Java.",
462 | "table": [
463 | [
464 | "Integer[] arr = numbers.toArray(new Integer[numbers.size()]);",
465 | "",
466 | "Convert the 'numbers' ArrayList to an Integer array."
467 | ],
468 | [
469 | "ArrayList list = new ArrayList<>(Arrays.asList(arr));",
470 | "",
471 | "Convert an Integer array 'arr' to an ArrayList."
472 | ]
473 | ]
474 | }
475 | ]
476 | },
477 | {
478 | "title": "Stack",
479 | "content": [
480 | {
481 | "title": "Stack Declaration & Initialization",
482 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html",
483 | "description": "Declare and initialize a Stack in Java to represent a last-in, first-out (LIFO) stack of objects.",
484 | "table": [
485 | [
486 | "Stack stack = new Stack<>();",
487 | "",
488 | "Declare a Stack 'stack' to store Integer elements."
489 | ]
490 | ]
491 | },
492 | {
493 | "title": "Stack Operations",
494 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html",
495 | "description": "Perform various operations on Stack in Java such as pushing, popping, peeking, and checking size.",
496 | "table": [
497 | [
498 | "stack.push(10);",
499 | "",
500 | "Push an element '10' onto the stack."
501 | ],
502 | [
503 | "int topElement = stack.pop();",
504 | "",
505 | "Pop the top element from the stack."
506 | ],
507 | [
508 | "int topElement = stack.peek();",
509 | "",
510 | "Get the top element of the stack without removing it."
511 | ],
512 | [
513 | "boolean isEmpty = stack.isEmpty();",
514 | "",
515 | "Check if the stack is empty."
516 | ],
517 | [
518 | "int size = stack.size();",
519 | "",
520 | "Get the size of the stack."
521 | ]
522 | ]
523 | },
524 | {
525 | "title": "Iterating Over Stack",
526 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html",
527 | "description": "Iterate over elements of Stack in Java using the enhanced for loop or the forEach() method.",
528 | "table": [
529 | [
530 | "for (Integer element : stack) {...}",
531 | "",
532 | "Iterate over elements of the stack using the enhanced for loop."
533 | ],
534 | [
535 | "stack.forEach(element -> println(element));",
536 | "",
537 | "Iterate over elements of the stack using the forEach() method and a lambda expression."
538 | ]
539 | ]
540 | }
541 | ]
542 | },
543 | {
544 | "title": "HashMap",
545 | "content": [
546 | {
547 | "title": "HashMap Declaration & Initialization",
548 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html",
549 | "description": "Declare and initialize HashMap in Java to store key-value pairs.",
550 | "table": [
551 | [
552 | "HashMap ages = new HashMap<>();",
553 | "",
554 | "Declare a HashMap 'ages' to store String keys and Integer values."
555 | ],
556 | [
557 | "HashMap students = new HashMap<>();",
558 | "",
559 | "Declare a HashMap 'students' to store Integer keys and String values."
560 | ]
561 | ]
562 | },
563 | {
564 | "title": "HashMap Operations",
565 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html",
566 | "description": "Perform various operations on HashMap in Java such as adding, removing, accessing elements, and checking size.",
567 | "table": [
568 | [
569 | "ages.put(\"Alice\", 25);",
570 | "",
571 | "Add a key-value pair ('Alice', 25) to the 'ages' HashMap."
572 | ],
573 | [
574 | "students.remove(101);",
575 | "",
576 | "Remove the key-value pair with key 101 from the 'students' HashMap."
577 | ],
578 | [
579 | "int age = ages.get(\"Bob\");",
580 | "",
581 | "Get the value associated with key \"Bob\" from the 'ages' HashMap."
582 | ],
583 | [
584 | "boolean containsKey = students.containsKey(102);",
585 | "",
586 | "Check if the 'students' HashMap contains key 102."
587 | ],
588 | [
589 | "int size = ages.size();",
590 | "",
591 | "Get the size of the 'ages' HashMap."
592 | ]
593 | ]
594 | },
595 | {
596 | "title": "Iterating Over HashMap",
597 | "docs": "",
598 | "description": "Iterate over key-value pairs of HashMap in Java using the entrySet() method or keySet() method.",
599 | "table": [
600 | [
601 | "for (Map.Entry entry : ages.entrySet()) {",
602 | "",
603 | "Iterate over key-value pairs of the 'ages' HashMap using entrySet()."
604 | ],
605 | [
606 | " String name = entry.getKey();",
607 | "",
608 | "Get the key of the current entry."
609 | ],
610 | [
611 | " int age = entry.getValue();",
612 | "",
613 | "Get the value of the current entry."
614 | ],
615 | [
616 | "for (String name : students.keySet()) {",
617 | "",
618 | "Iterate over keys of the 'students' HashMap using keySet()."
619 | ],
620 | [
621 | " String studentName = students.get(name);",
622 | "",
623 | "Get the value associated with the current key."
624 | ]
625 | ]
626 | }
627 | ]
628 | },
629 | {
630 | "title": "HashSet",
631 | "content": [
632 | {
633 | "title": "HashSet Declaration & Initialization",
634 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html",
635 | "description": "Declare and initialize HashSet in Java to store a collection of unique elements.",
636 | "table": [
637 | [
638 | "HashSet numbers = new HashSet<>();",
639 | "",
640 | "Declare a HashSet 'numbers' to store Integer elements."
641 | ],
642 | [
643 | "HashSet names = new HashSet<>();",
644 | "",
645 | "Declare a HashSet 'names' to store String elements."
646 | ]
647 | ]
648 | },
649 | {
650 | "title": "HashSet Operations",
651 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html",
652 | "description": "Perform various operations on HashSet in Java such as adding, removing, checking existence, and checking size.",
653 | "table": [
654 | [
655 | "numbers.add(10);",
656 | "",
657 | "Add an element '10' to the 'numbers' HashSet."
658 | ],
659 | [
660 | "names.remove(\"Alice\");",
661 | "",
662 | "Remove the element \"Alice\" from the 'names' HashSet."
663 | ],
664 | [
665 | "boolean contains = names.contains(\"Bob\");",
666 | "",
667 | "Check if the 'names' HashSet contains the element \"Bob\"."
668 | ],
669 | [
670 | "int size = numbers.size();",
671 | "",
672 | "Get the size of the 'numbers' HashSet."
673 | ]
674 | ]
675 | },
676 | {
677 | "title": "Iterating Over HashSet",
678 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html",
679 | "description": "Iterate over elements of HashSet in Java using the enhanced for loop or the forEach() method.",
680 | "table": [
681 | [
682 | "for (Integer num : numbers) {...}",
683 | "",
684 | "Iterate over the 'numbers' HashSet using the enhanced for loop."
685 | ],
686 | [
687 | "names.forEach(name -> println(name));",
688 | "",
689 | "Iterate over the 'names' HashSet using the forEach() method and a lambda expression."
690 | ]
691 | ]
692 | },
693 | {
694 | "title": "HashSet Conversion",
695 | "docs": "https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html",
696 | "description": "Convert HashSet to an array or vice versa in Java.",
697 | "table": [
698 | [
699 | "Integer[] arr = numbers.toArray(new Integer[numbers.size()]);",
700 | "",
701 | "Convert the 'numbers' HashSet to an Integer array."
702 | ],
703 | [
704 | "HashSet set = new HashSet<>(Arrays.asList(arr));",
705 | "",
706 | "Convert an Integer array 'arr' to a HashSet."
707 | ]
708 | ]
709 | }
710 | ]
711 | }
712 | ]
--------------------------------------------------------------------------------
/src/data/python_docs.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title": "Python Strings",
4 | "content": [
5 | {
6 | "title": "String Type",
7 | "docs": "https://docs.python.org/3/library/stdtypes.html#str",
8 | "description": "Check if a variable is of type str using the isinstance function.",
9 | "table": [
10 | [
11 | "isinstance('Hello', str)",
12 | "True",
13 | ""
14 | ],
15 | [
16 | "isinstance(5, str)",
17 | "False",
18 | ""
19 | ]
20 | ]
21 | },
22 | {
23 | "title": "Whitespace Characters",
24 | "docs": "https://docs.python.org/3/library/stdtypes.html#string-methods",
25 | "description": "Common whitespace characters used in strings.",
26 | "table": [
27 | [
28 | "Newline",
29 | "\\n",
30 | "Line break character"
31 | ],
32 | [
33 | "Space",
34 | "\\s",
35 | "Regular space character"
36 | ],
37 | [
38 | "Tab",
39 | "\\t",
40 | "Tab character"
41 | ]
42 | ]
43 | },
44 | {
45 | "title": "Indexing & Slicing",
46 | "docs": "https://docs.python.org/3/tutorial/introduction.html#strings",
47 | "description": "String indexing and slicing allow for accessing parts of a string.",
48 | "table": [
49 | [
50 | "s = 'Hello'",
51 | "",
52 | ""
53 | ],
54 | [
55 | "s[0]",
56 | "'H'",
57 | "First character"
58 | ],
59 | [
60 | "s[1:3]",
61 | "'el'",
62 | "Slice from index 1 to 2"
63 | ],
64 | [
65 | "s[-3:-1]",
66 | "'ll'",
67 | "Slice from index -3 to -2"
68 | ],
69 | [
70 | "s[-3:]",
71 | "'llo'",
72 | "Slice from index -3 to end"
73 | ],
74 | [
75 | "s[:2]",
76 | "'He'",
77 | "Slice from start to index 1"
78 | ]
79 | ]
80 | },
81 | {
82 | "title": "String Methods",
83 | "docs": "https://docs.python.org/3/library/stdtypes.html#string-methods",
84 | "description": "Commonly used string methods.",
85 | "table": [
86 | [
87 | "len('Hello')",
88 | "5",
89 | "String length"
90 | ],
91 | [
92 | "'he' in 'hello'",
93 | "True",
94 | "Substring presence check"
95 | ],
96 | [
97 | "' Hello '.strip()",
98 | "'Hello'",
99 | "Removes surrounding whitespace"
100 | ],
101 | [
102 | "'HI'.lower()",
103 | "'hi'",
104 | "Converts to lowercase"
105 | ],
106 | [
107 | "'hi'.upper()",
108 | "'HI'",
109 | "Converts to uppercase"
110 | ],
111 | [
112 | "'hello'.startswith('he')",
113 | "True",
114 | "Checks if string starts with substring"
115 | ],
116 | [
117 | "'hello'.endswith('yz')",
118 | "False",
119 | "Checks if string ends with substring"
120 | ],
121 | [
122 | "'hello'.find('ll')",
123 | "2",
124 | "Finds substring, returns starting index"
125 | ],
126 | [
127 | "'hello'.replace('he', 'me')",
128 | "'mello'",
129 | "Replaces substring"
130 | ],
131 | [
132 | "''.join(['L', 'A', 'X'])",
133 | "'LAX'",
134 | "Joins elements with separator"
135 | ]
136 | ]
137 | },
138 | {
139 | "title": "String Concatenation",
140 | "docs": "https://docs.python.org/3/tutorial/introduction.html#strings",
141 | "description": "Combining strings using the + operator.",
142 | "table": [
143 | [
144 | "'Hello' + ' ' + 'World'",
145 | "'Hello World'",
146 | "Concatenates strings"
147 | ]
148 | ]
149 | },
150 | {
151 | "title": "String Formatting",
152 | "docs": "https://docs.python.org/3/library/string.html#string-formatting",
153 | "description": "Formatting strings using .format(), f-strings, and % operator.",
154 | "table": [
155 | [
156 | "'Hello {}'.format('World')",
157 | "'Hello World'",
158 | "Using .format()"
159 | ],
160 | [
161 | "f'Hello {name}'",
162 | "'Hello World'",
163 | "Using f-strings"
164 | ],
165 | [
166 | "'Hello %s' % 'World'",
167 | "'Hello World'",
168 | "Using % operator"
169 | ]
170 | ]
171 | },
172 | {
173 | "title": "String Splitting",
174 | "docs": "https://docs.python.org/3/library/stdtypes.html#str.split",
175 | "description": "Splitting a string into a list using .split().",
176 | "table": [
177 | [
178 | "'Hello World'.split()",
179 | "['Hello', 'World']",
180 | "Splits by whitespace"
181 | ],
182 | [
183 | "'one,two,three'.split(',')",
184 | "['one', 'two', 'three']",
185 | "Splits by comma"
186 | ]
187 | ]
188 | },
189 | {
190 | "title": "String Joining",
191 | "docs": "https://docs.python.org/3/library/stdtypes.html#str.join",
192 | "description": "Joining a list of strings into a single string using .join().",
193 | "table": [
194 | [
195 | "'-'.join(['2024', '05'])",
196 | "'2024-05'",
197 | "Joins with hyphen"
198 | ]
199 | ]
200 | },
201 | {
202 | "title": "String Reversing",
203 | "docs": "",
204 | "description": "Reversing a string using slicing.",
205 | "table": [
206 | [
207 | "'Hello'[::-1]",
208 | "'olleH'",
209 | "Reverses the string"
210 | ]
211 | ]
212 | },
213 | {
214 | "title": "String Properties",
215 | "docs": "https://docs.python.org/3/library/stdtypes.html#string-methods",
216 | "description": "Methods to check properties of strings.",
217 | "table": [
218 | [
219 | "'hello'.isalpha()",
220 | "True",
221 | "Checks if all characters are alphabetic"
222 | ],
223 | [
224 | "'123'.isdigit()",
225 | "True",
226 | "Checks if all characters are digits"
227 | ],
228 | [
229 | "'hello'.islower()",
230 | "True",
231 | "Checks if all characters are lowercase"
232 | ],
233 | [
234 | "'HELLO'.isupper()",
235 | "True",
236 | "Checks if all characters are uppercase"
237 | ]
238 | ]
239 | }
240 | ]
241 | },
242 | {
243 | "title": "Numeric Types",
244 | "content": [
245 | {
246 | "title": "Integer Type",
247 | "docs": "https://docs.python.org/3/library/stdtypes.html#int",
248 | "description": "Check if a variable is of type int using the isinstance function.",
249 | "table": [
250 | [
251 | "isinstance(5, int)",
252 | "True",
253 | ""
254 | ],
255 | [
256 | "isinstance(5.5, int)",
257 | "False",
258 | ""
259 | ]
260 | ]
261 | },
262 | {
263 | "title": "Floating-Point Type",
264 | "docs": "https://docs.python.org/3/library/stdtypes.html#float",
265 | "description": "Check if a variable is of type float using the isinstance function.",
266 | "table": [
267 | [
268 | "isinstance(5.5, float)",
269 | "True",
270 | ""
271 | ],
272 | [
273 | "isinstance(5, float)",
274 | "False",
275 | ""
276 | ]
277 | ]
278 | },
279 | {
280 | "title": "Complex Type",
281 | "docs": "https://docs.python.org/3/library/stdtypes.html#complex",
282 | "description": "Check if a variable is of type complex using the isinstance function.",
283 | "table": [
284 | [
285 | "isinstance(5+3j, complex)",
286 | "True",
287 | ""
288 | ],
289 | [
290 | "isinstance(5, complex)",
291 | "False",
292 | ""
293 | ]
294 | ]
295 | },
296 | {
297 | "title": "Numeric Operations",
298 | "docs": "https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex",
299 | "description": "Common operations performed on numeric types.",
300 | "table": [
301 | [
302 | "5 + 3",
303 | "8",
304 | "Addition"
305 | ],
306 | [
307 | "5 - 3",
308 | "2",
309 | "Subtraction"
310 | ],
311 | [
312 | "5 * 3",
313 | "15",
314 | "Multiplication"
315 | ],
316 | [
317 | "5 / 3",
318 | "1.6667",
319 | "Division"
320 | ],
321 | [
322 | "5 // 3",
323 | "1",
324 | "Integer Division"
325 | ],
326 | [
327 | "5 % 3",
328 | "2",
329 | "Modulus (Remainder)"
330 | ],
331 | [
332 | "5 ** 3",
333 | "125",
334 | "Exponentiation"
335 | ]
336 | ]
337 | }
338 | ]
339 | },
340 | {
341 | "title": "Data Structures - Lists",
342 | "content": [
343 | {
344 | "title": "Lists",
345 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#more-on-lists",
346 | "description": "Check if a variable is a list using the isinstance function.",
347 | "table": [
348 | [
349 | "isinstance([1, 2, 3], list)",
350 | "True",
351 | ""
352 | ],
353 | [
354 | "isinstance((1, 2, 3), list)",
355 | "False",
356 | ""
357 | ]
358 | ]
359 | },
360 | {
361 | "title": "List Creation",
362 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#more-on-lists",
363 | "description": "Different ways to create lists in Python.",
364 | "table": [
365 | [
366 | "list()",
367 | "[]",
368 | "Empty list"
369 | ],
370 | [
371 | "[1, 2, 3]",
372 | "[1, 2, 3]",
373 | "List with elements"
374 | ],
375 | [
376 | "[x**2 for x in range(5)]",
377 | "[0, 1, 4, 9, 16]",
378 | "List comprehension"
379 | ]
380 | ]
381 | },
382 | {
383 | "title": "List Operations",
384 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#more-on-lists",
385 | "description": "Common operations performed on lists.",
386 | "table": [
387 | [
388 | "[1, 2] + [3, 4]",
389 | "[1, 2, 3, 4]",
390 | "Concatenation"
391 | ],
392 | [
393 | "[1, 2, 3] * 2",
394 | "[1, 2, 3, 1, 2, 3]",
395 | "Repetition"
396 | ],
397 | [
398 | "len([1, 2, 3])",
399 | "3",
400 | "Length"
401 | ],
402 | [
403 | "3 in [1, 2, 3]",
404 | "True",
405 | "Membership"
406 | ],
407 | [
408 | "max([1, 2, 3])",
409 | "3",
410 | "Maximum value"
411 | ],
412 | [
413 | "min([1, 2, 3])",
414 | "1",
415 | "Minimum value"
416 | ],
417 | [
418 | "[1, 2, 3].count(2)",
419 | "1",
420 | "Count occurrences"
421 | ]
422 | ]
423 | },
424 | {
425 | "title": "List Methods",
426 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#more-on-lists",
427 | "description": "Commonly used methods for lists.",
428 | "table": [
429 | [
430 | "[1, 2, 3].append(4)",
431 | "[1, 2, 3, 4]",
432 | "Append element to the end"
433 | ],
434 | [
435 | "[1, 2, 3].extend([4, 5])",
436 | "[1, 2, 3, 4, 5]",
437 | "Extend list with elements from another list"
438 | ],
439 | [
440 | "[1, 2, 3].insert(1, 'a')",
441 | "[1, 'a', 2, 3]",
442 | "Insert element at specific index"
443 | ],
444 | [
445 | "[1, 2, 3].remove(2)",
446 | "[1, 3]",
447 | "Remove first occurrence of element"
448 | ],
449 | [
450 | "[1, 2, 3].pop()",
451 | "3",
452 | "Remove and return last element"
453 | ],
454 | [
455 | "[1, 2, 3].index(2)",
456 | "1",
457 | "Return index of first occurrence of element"
458 | ],
459 | [
460 | "[1, 2, 2, 3].count(2)",
461 | "2",
462 | "Count occurrences of element"
463 | ],
464 | [
465 | "[1, 2, 3].sort()",
466 | "[1, 2, 3]",
467 | "Sort list in place"
468 | ],
469 | [
470 | "[3, 2, 1].reverse()",
471 | "[1, 2, 3]",
472 | "Reverse list in place"
473 | ],
474 | [
475 | "[1, 2, 3].copy()",
476 | "[1, 2, 3]",
477 | "Shallow copy of the list"
478 | ]
479 | ]
480 | }
481 | ]
482 | },
483 | {
484 | "title": "Data Structures - Dictionaries",
485 | "content": [
486 | {
487 | "title": "Dictionaries",
488 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#dictionaries",
489 | "description": "Check if a variable is a dictionary using the isinstance function.",
490 | "table": [
491 | [
492 | "isinstance({'a': 1, 'b': 2}, dict)",
493 | "True",
494 | ""
495 | ],
496 | [
497 | "isinstance(['a', 'b', 'c'], dict)",
498 | "False",
499 | ""
500 | ]
501 | ]
502 | },
503 | {
504 | "title": "Dictionary Creation",
505 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#dictionaries",
506 | "description": "Different ways to create dictionaries in Python.",
507 | "table": [
508 | [
509 | "dict()",
510 | "{}",
511 | "Empty dictionary"
512 | ],
513 | [
514 | "{'a': 1, 'b': 2}",
515 | "{'a': 1, 'b': 2}",
516 | "Dictionary with key-value pairs"
517 | ],
518 | [
519 | "{x: x**2 for x in (2, 4, 6)}",
520 | "{2: 4, 4: 16, 6: 36}",
521 | "Dictionary comprehension"
522 | ]
523 | ]
524 | },
525 | {
526 | "title": "Dictionary Operations",
527 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#dictionaries",
528 | "description": "Common operations performed on dictionaries.",
529 | "table": [
530 | [
531 | "len({'a': 1, 'b': 2})",
532 | "2",
533 | "Length (number of key-value pairs)"
534 | ],
535 | [
536 | "'a' in {'a': 1, 'b': 2}",
537 | "True",
538 | "Membership (checks if key exists)"
539 | ],
540 | [
541 | "'c' not in {'a': 1, 'b': 2}",
542 | "True",
543 | "Membership (checks if key does not exist)"
544 | ],
545 | [
546 | "max({'a': 1, 'b': 2})",
547 | "'b'",
548 | "Maximum key"
549 | ],
550 | [
551 | "min({'a': 1, 'b': 2})",
552 | "'a'",
553 | "Minimum key"
554 | ],
555 | [
556 | "{'a': 1, 'b': 2}.keys()",
557 | "dict_keys(['a', 'b'])",
558 | "View of dictionary keys"
559 | ],
560 | [
561 | "{'a': 1, 'b': 2}.values()",
562 | "dict_values([1, 2])",
563 | "View of dictionary values"
564 | ],
565 | [
566 | "{'a': 1, 'b': 2}.items()",
567 | "dict_items([('a', 1), ('b', 2)])",
568 | "View of dictionary key-value pairs"
569 | ]
570 | ]
571 | },
572 | {
573 | "title": "Dictionary Methods",
574 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#dictionaries",
575 | "description": "Commonly used methods for dictionaries.",
576 | "table": [
577 | [
578 | "{'a': 1, 'b': 2}.get('a')",
579 | "1",
580 | "Get value for key 'a'"
581 | ],
582 | [
583 | "{'a': 1, 'b': 2}.get('c', 'Not Found')",
584 | "'Not Found'",
585 | "Get value for key 'c', with default value"
586 | ],
587 | [
588 | "{'a': 1, 'b': 2}.pop('a')",
589 | "1",
590 | "Remove and return value for key 'a'"
591 | ],
592 | [
593 | "{'a': 1, 'b': 2}.popitem()",
594 | "('b', 2)",
595 | "Remove and return arbitrary key-value pair"
596 | ],
597 | [
598 | "{'a': 1, 'b': 2}.update({'c': 3})",
599 | "{'a': 1, 'b': 2, 'c': 3}",
600 | "Update dictionary with key-value pairs from another dictionary"
601 | ],
602 | [
603 | "{'a': 1, 'b': 2}.clear()",
604 | "{}",
605 | "Remove all items from the dictionary"
606 | ],
607 | [
608 | "{'a': 1, 'b': 2}.copy()",
609 | "{'a': 1, 'b': 2}",
610 | "Shallow copy of the dictionary"
611 | ]
612 | ]
613 | }
614 | ]
615 | },
616 | {
617 | "title": "Data Structures - Tuples",
618 | "content": [
619 | {
620 | "title": "Tuples",
621 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences",
622 | "description": "Check if a variable is a tuple using the isinstance function.",
623 | "table": [
624 | [
625 | "isinstance((1, 2, 3), tuple)",
626 | "True",
627 | ""
628 | ],
629 | [
630 | "isinstance([1, 2, 3], tuple)",
631 | "False",
632 | ""
633 | ]
634 | ]
635 | },
636 | {
637 | "title": "Tuple Creation",
638 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences",
639 | "description": "Different ways to create tuples in Python.",
640 | "table": [
641 | [
642 | "tuple()",
643 | "()",
644 | "Empty tuple"
645 | ],
646 | [
647 | "(1, 2, 3)",
648 | "(1, 2, 3)",
649 | "Tuple with elements"
650 | ],
651 | [
652 | "tuple('hello')",
653 | "('h', 'e', 'l', 'l', 'o')",
654 | "Tuple from iterable"
655 | ]
656 | ]
657 | },
658 | {
659 | "title": "Tuple Operations",
660 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences",
661 | "description": "Common operations performed on tuples.",
662 | "table": [
663 | [
664 | "(1, 2) + (3, 4)",
665 | "(1, 2, 3, 4)",
666 | "Concatenation"
667 | ],
668 | [
669 | "(1, 2) * 2",
670 | "(1, 2, 1, 2)",
671 | "Repetition"
672 | ],
673 | [
674 | "len((1, 2, 3))",
675 | "3",
676 | "Length"
677 | ],
678 | [
679 | "3 in (1, 2, 3)",
680 | "True",
681 | "Membership"
682 | ],
683 | [
684 | "max((1, 2, 3))",
685 | "3",
686 | "Maximum value"
687 | ],
688 | [
689 | "min((1, 2, 3))",
690 | "1",
691 | "Minimum value"
692 | ],
693 | [
694 | "(1, 2, 3).count(2)",
695 | "1",
696 | "Count occurrences"
697 | ],
698 | [
699 | "(1, 2, 3).index(2)",
700 | "1",
701 | "Return index of first occurrence"
702 | ]
703 | ]
704 | }
705 | ]
706 | },
707 | {
708 | "title": "Data Structures - Sets",
709 | "content": [
710 | {
711 | "title": "Sets",
712 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#sets",
713 | "description": "Check if a variable is a set using the isinstance function.",
714 | "table": [
715 | [
716 | "isinstance({1, 2, 3}, set)",
717 | "True",
718 | ""
719 | ],
720 | [
721 | "isinstance([1, 2, 3], set)",
722 | "False",
723 | ""
724 | ]
725 | ]
726 | },
727 | {
728 | "title": "Set Creation",
729 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#sets",
730 | "description": "Different ways to create sets in Python.",
731 | "table": [
732 | [
733 | "set()",
734 | "set()",
735 | "Empty set"
736 | ],
737 | [
738 | "{1, 2, 3}",
739 | "{1, 2, 3}",
740 | "Set with elements"
741 | ],
742 | [
743 | "set('hello')",
744 | "{'e', 'h', 'l', 'o'}",
745 | "Set from iterable"
746 | ],
747 | [
748 | "{x for x in 'hello' if x not in 'aeiou'}",
749 | "{'h', 'l'}",
750 | "Set comprehension"
751 | ]
752 | ]
753 | },
754 | {
755 | "title": "Set Operations",
756 | "docs": "https://docs.python.org/3/tutorial/datastructures.html#sets",
757 | "description": "Common operations performed on sets.",
758 | "table": [
759 | [
760 | "{1, 2} | {2, 3}",
761 | "{1, 2, 3}",
762 | "Union"
763 | ],
764 | [
765 | "{1, 2} & {2, 3}",
766 | "{2}",
767 | "Intersection"
768 | ],
769 | [
770 | "{1, 2} - {2, 3}",
771 | "{1}",
772 | "Difference"
773 | ],
774 | [
775 | "{1, 2} ^ {2, 3}",
776 | "{1, 3}",
777 | "Symmetric Difference"
778 | ],
779 | [
780 | "len({1, 2, 3})",
781 | "3",
782 | "Length"
783 | ],
784 | [
785 | "3 in {1, 2, 3}",
786 | "True",
787 | "Membership"
788 | ],
789 | [
790 | "max({1, 2, 3})",
791 | "3",
792 | "Maximum value"
793 | ],
794 | [
795 | "min({1, 2, 3})",
796 | "1",
797 | "Minimum value"
798 | ],
799 | [
800 | "{1, 2, 3}.add(4)",
801 | "{1, 2, 3, 4}",
802 | "Add element to set"
803 | ],
804 | [
805 | "{1, 2, 3}.remove(2)",
806 | "{1, 3}",
807 | "Remove element from set"
808 | ]
809 | ]
810 | }
811 | ]
812 | },
813 | {
814 | "title": "Control Flow",
815 | "content": [
816 | {
817 | "title": "If Statements",
818 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#if-statements",
819 | "description": "Check if a condition is true and execute a block of code accordingly.",
820 | "table": [
821 | [
822 | "x = 5\nif x > 0:\n print('Positive')",
823 | "Positive",
824 | ""
825 | ],
826 | [
827 | "x = -5\nif x > 0:\n print('Positive')",
828 | "",
829 | ""
830 | ]
831 | ]
832 | },
833 | {
834 | "title": "If-Else Statements",
835 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#if-statements",
836 | "description": "Execute one block of code if a condition is true, otherwise execute another block.",
837 | "table": [
838 | [
839 | "x = 5\nif x > 0:\n print('Positive')\nelse:\n print('Non-positive')",
840 | "Positive",
841 | ""
842 | ],
843 | [
844 | "x = -5\nif x > 0:\n print('Positive')\nelse:\n print('Non-positive')",
845 | "Non-positive",
846 | ""
847 | ]
848 | ]
849 | },
850 | {
851 | "title": "Elif Statements",
852 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#if-statements",
853 | "description": "Check multiple conditions sequentially and execute the block of code associated with the first true condition.",
854 | "table": [
855 | [
856 | "x = 5\nif x > 0:\n print('Positive')\nelif x == 0:\n print('Zero')\nelse:\n print('Negative')",
857 | "Positive",
858 | ""
859 | ],
860 | [
861 | "x = 0\nif x > 0:\n print('Positive')\nelif x == 0:\n print('Zero')\nelse:\n print('Negative')",
862 | "Zero",
863 | ""
864 | ],
865 | [
866 | "x = -5\nif x > 0:\n print('Positive')\nelif x == 0:\n print('Zero')\nelse:\n print('Negative')",
867 | "Negative",
868 | ""
869 | ]
870 | ]
871 | },
872 | {
873 | "title": "For Loops",
874 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#for-statements",
875 | "description": "Iterate over a sequence (e.g., list, tuple, string) and execute a block of code for each element.",
876 | "table": [
877 | [
878 | "for i in [1, 2, 3]:\n print(i)",
879 | "1\n2\n3",
880 | ""
881 | ],
882 | [
883 | "for char in 'hello':\n print(char)",
884 | "h\ne\nl\nl\no",
885 | ""
886 | ]
887 | ]
888 | },
889 | {
890 | "title": "While Loops",
891 | "docs": "https://docs.python.org/3/tutorial/introduction.html#first-steps-towards-programming",
892 | "description": "Repeat a block of code as long as a condition is true.",
893 | "table": [
894 | [
895 | "x = 5\nwhile x > 0:\n print(x)\n x -= 1",
896 | "5\n4\n3\n2\n1",
897 | ""
898 | ]
899 | ]
900 | },
901 | {
902 | "title": "Break Statement",
903 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops",
904 | "description": "Terminate the nearest enclosing loop prematurely.",
905 | "table": [
906 | [
907 | "for i in [1, 2, 3, 4, 5]:\n if i == 3:\n break\n print(i)",
908 | "1\n2",
909 | ""
910 | ]
911 | ]
912 | },
913 | {
914 | "title": "Continue Statement",
915 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops",
916 | "description": "Skip the rest of the code inside a loop for the current iteration and continue to the next iteration.",
917 | "table": [
918 | [
919 | "for i in [1, 2, 3, 4, 5]:\n if i == 3:\n continue\n print(i)",
920 | "1\n2\n4\n5",
921 | ""
922 | ]
923 | ]
924 | },
925 | {
926 | "title": "Pass Statement",
927 | "docs": "https://docs.python.org/3/tutorial/controlflow.html#pass-statements",
928 | "description": "A null operation; it does nothing. It can be used when a statement is required syntactically but you do not want any command or code to execute.",
929 | "table": [
930 | [
931 | "if True:\n pass",
932 | "",
933 | ""
934 | ]
935 | ]
936 | }
937 | ]
938 | },
939 | {
940 | "title": "Best Practices",
941 | "content": [
942 | {
943 | "title": "PEP 8 - Style Guide for Python Code",
944 | "docs": "https://www.python.org/dev/peps/pep-0008/",
945 | "description": "Follow the guidelines outlined in PEP 8 to write clean, readable, and maintainable Python code.",
946 | "table": []
947 | },
948 | {
949 | "title": "Use Snake Case for Variable Names",
950 | "docs": "https://www.python.org/dev/peps/pep-0008/#function-and-variable-names",
951 | "description": "Use snake_case for variable names to improve readability and consistency with Python conventions.",
952 | "table": []
953 | },
954 | {
955 | "title": "Avoid Magic Numbers and Strings",
956 | "docs": "https://www.python.org/dev/peps/pep-0008/#magic-numbers",
957 | "description": "Avoid using numeric or string literals directly in code without explanation. Define them as constants or variables with descriptive names.",
958 | "table": []
959 | },
960 | {
961 | "title": "Document Your Code with Docstrings",
962 | "docs": "https://www.python.org/dev/peps/pep-0008/#documentation-strings",
963 | "description": "Use docstrings to document your functions, classes, and modules. Provide clear and concise explanations of their purpose, parameters, and return values.",
964 | "table": []
965 | },
966 | {
967 | "title": "Modularize Your Code",
968 | "docs": "https://www.python.org/dev/peps/pep-0008/#imports",
969 | "description": "Break your code into smaller, reusable modules, functions, and classes. This promotes code reusability, maintainability, and readability.",
970 | "table": []
971 | },
972 | {
973 | "title": "Write Unit Tests",
974 | "docs": "https://docs.python.org/3/library/unittest.html",
975 | "description": "Write unit tests for your functions and classes using the built-in `unittest` framework or other testing frameworks like `pytest`. Ensure comprehensive test coverage.",
976 | "table": []
977 | },
978 | {
979 | "title": "Optimize Performance",
980 | "docs": "https://wiki.python.org/moin/PythonSpeed/PerformanceTips",
981 | "description": "Profile your code to identify performance bottlenecks and optimize critical sections. Use efficient algorithms and data structures.",
982 | "table": []
983 | }
984 | ]
985 | }
986 | ]
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom/client';
3 | import App from './App';
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root'));
6 | root.render(
7 |
8 |
9 |
10 | );
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: [
3 | "./src/**/*.{js,jsx,ts,tsx}",
4 | ],
5 | theme: {
6 | extend: {},
7 | },
8 | plugins: [],
9 | }
10 |
--------------------------------------------------------------------------------