Skip to content

Solutions and journey documentation for Google Foobar version 20230817-beta challenges. Focused on Python solutions and educational sharing. Licensed under MPL 2.0. Work in progress.

License

Notifications You must be signed in to change notification settings

gavinmclelland/foobar-with-Google

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues License LinkedIn


Logo

Google Foobar version 20230817-beta

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
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

I Foobar, with Google

Google Foobar Screen Shot

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

My Google Foobar Status

Current level Challenges left to complete level
2 2

(back to top)

Built With

  • Google
  • visualstudiocode
  • Docker
  • Python

(back to top)

Getting Started

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.

Prerequisites

  • 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.

Constraints

All Foobar challenge solutions must adhere to the constraints specified in constraints.txt.

(back to top)

Usage

  1. Login to foo.bar with Google https://foobar.withgoogle.com/

  2. Clone the repo

    git clone https://github.com/gavinmclelland/foobar-with-Google.git
  3. In Google Foobar, run tests on solution files [solution.py]

    verify solution.py

(back to top)

Roadmap

  • 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

(back to top)

Contributing

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).

How to Contribute

1. Fork the Project

  1. Go to the repository URL: foobar-with-Google
  2. Click on the "Fork" button at the top-right corner.
  3. This will create a copy of the repository in your GitHub account.

2. Clone Your Fork Locally

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.

3. Create Your Feature Branch

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`.

4. Make and Commit Your Changes

After making your changes, commit them to your feature branch:

git add .
git commit -m 'Add some EducationalEnhancement'

5. Push Changes to GitHub

Push your committed changes from your local feature branch back to its corresponding remote feature branch on GitHub:

git push origin feature/EducationalEnhancement

6. Open a Pull Request

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!

(back to top)

License

This work is licensed under MPL 2.0.

See LICENSE for more information.

(back to top)

Contact

Gavin - @gavinmclelland

Project Link: https://github.com/gavinmclelland/foobar-with-Google

(back to top)

Acknowledgments

(back to top)

About

Solutions and journey documentation for Google Foobar version 20230817-beta challenges. Focused on Python solutions and educational sharing. Licensed under MPL 2.0. Work in progress.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages