├── 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 | LeetPrep - Handy Interview Preparation for Developers 3 |
4 | LeetPrep - Handy Interview Preparation for Developers 5 |
6 |
7 |

8 | 9 |

10 | 11 | license 12 | 13 | 14 | chrome-webstore 15 | 16 | 17 | 18 | 19 |

20 | 21 |
22 | 23 | [![Chrome](https://user-images.githubusercontent.com/53124886/111952712-34f12300-8aee-11eb-9fdd-ad579a1eb235.png)](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 | 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 | Hero1 46 | Hero2 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 |
  1. Fork this repo and clone to your local machine
  2. 76 |
  3. Go to chrome://extensions
  4. 77 |
  5. Enable Developer mode by toggling the switch on top right corner
  6. 78 |
  7. Click 'Load unpacked'
  8. 79 |
  9. Select the "build" folder at the root of this repo
  10. 80 |
  11. Local development extension should be loaded now
  12. 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
-------------------------------------------------------------------------------- /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 | 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 | LeetPrep 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 | 182 | 193 | 204 | 215 |
216 | 217 |
218 | {activeDiv === "docsDiv" && ( 219 |
220 | {/* Documentation Selection */} 221 | 222 |
223 | 234 | 235 | 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 |
    265 | {content.title} 266 | 272 | DOCS 273 | 274 |
    275 | 276 | {/* Toggle Children */} 277 |
    278 |
    279 |

    280 | {content.description} 281 |

    282 |
    283 |
      284 | {content.table.map((classes, index) => ( 285 |
    • 289 | { 291 | e.stopPropagation(); 292 | copyToClipboard(classes[0]); 293 | }} 294 | className="flex text-[13px] font-mono text-purple-500 hover:text-purple-600 cursor-pointer transition duration-200 mr-5" 295 | > 296 | {classes[0]} 297 | 298 | 299 |
      300 | 301 | { 303 | e.stopPropagation(); 304 | copyToClipboard(classes[1]); 305 | }} 306 | className="text-[13px] text-blue-400 font-mono hover:text-sky-600 cursor-pointer transition duration-200" 307 | > 308 | {classes[1]} 309 | 310 | 311 | {classes[2] && ( 312 | 313 | {" "} 314 | ({classes[2]}) 315 | 316 | )} 317 |
      318 |
    • 319 | ))} 320 |
    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 |
8 |

Array

9 | 57 |
58 | 59 |
60 |

Binary

61 | 88 |
89 | 90 |
91 |

92 | Dynamic Programming 93 |

94 | 149 |
150 | 151 |
152 |

Graph

153 | 195 |
196 | 197 |
198 |

Interval

199 | 226 |
227 | 228 |
229 |

Linked List

230 | 262 |
263 | 264 |
265 |

String

266 | 318 |
319 | 320 |
321 |

Tree

322 | 392 |
393 |
394 |

Heap

395 | 412 |
413 |
414 |

Matrix

415 | 437 |
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 |
6 |

Big-O Complexity

7 | Big-O 12 | 13 |

Data Structures Big-O

14 | Big-O 19 | 20 |

Sorting Big-O

21 | Big-O 26 | 31 |

Credit: Big-O Cheatsheet

32 |
33 |
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 | {`LC 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 | --------------------------------------------------------------------------------