This repository contains my solutions and journey documentation for Google Foobar version 20230817-beta challenges. Focused on Python solutions and educational sharing. Work in progress.
Explore my Challenge Journal »
foo.bar
·
Report Bug
·
Provide Feedback
Table of Contents
Google Foobar is an invitation-only coding challenge created by Google. It features five levels of progressively difficult programming problems. The challenges cover a wide array of algorithmic topics, including but not limited to:
- Graph Theory
- Dynamic Programming
- String Manipulation
- Data Structures
- Recursion
- Sorting
- Optimization
- Mathematical Puzzles
Current level | Challenges left to complete level |
---|---|
2 | 2 |
- Level 1: 100% [==========]
- Level 2: 50% [..........]
- Gearing Up for Destruction
- Challenge 2b TBD
- Level 3: 0% [..........]
- Level 4: 0% [..........]
- Level 5: 0% [..........]
Since the solution is designed to run in a sandboxed environment by calling the solution()
function, running it outside of this context won't be applicable.
- Python 2.7.13 sandbox.
-
All tests will be run by calling the solution() function.
-
Standard libraries are supported except for bz2, crypt, fcntl, mmap, pwd, pyexpat, select, signal, termios, thread, time, unicodedata, zipimport, zlib.
-
Input/output operations are not allowed.
-
solution must be under 32000 characters in length including new lines and other non-printing characters.
-
All Foobar challenge solutions must adhere to the constraints specified in constraints.txt
.
-
Login to foo.bar with Google https://foobar.withgoogle.com/
-
Clone the repo
git clone https://github.com/gavinmclelland/foobar-with-Google.git
-
In Google Foobar, run tests on solution files [solution.py]
verify solution.py
- Reach 100% for all 5 levels of Google Foobar
- Foobar Python 2.7.13 sandbox-quick-start for Apple Silicon
- Dockerfile
- .devcontainer for VS Code
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. While this repository at github.com/gavinmclelland/foobar-with-Google primarily documents my personal journey through Google Foobar challenges, contributions that enhance the educational value or optimize the existing solutions are greatly appreciated.
Note: The main solutions to the challenges will remain as documentation of my personal journey. Please consider this while making a contribution.
See the open issues to track a full list of proposed features (and known issues).
- Go to the repository URL: foobar-with-Google
- Click on the "Fork" button at the top-right corner.
- This will create a copy of the repository in your GitHub account.
After forking, clone the forked repo to your local machine:
git clone https://github.com/YOUR_USERNAME/foobar-with-Google.git
Replace `YOUR_USERNAME` with your GitHub username.
Navigate to your local repository directory and execute the following:
cd foobar-with-Google
git checkout -b feature/EducationalEnhancement
This will create and switch to a new branch named `feature/EducationalEnhancement`.
After making your changes, commit them to your feature branch:
git add .
git commit -m 'Add some EducationalEnhancement'
Push your committed changes from your local feature branch back to its corresponding remote feature branch on GitHub:
git push origin feature/EducationalEnhancement
Go back to your forked repository on GitHub and click "New Pull Request." Choose the feature branch you just pushed as the "compare" branch. Fill in the pull request details and submit it.
Contributions that align with the educational and journey-based nature of this repository are most welcome. Don't forget to give the project a star! Thanks again!
This work is licensed under MPL 2.0.
See LICENSE
for more information.
Gavin - @gavinmclelland
Project Link: https://github.com/gavinmclelland/foobar-with-Google