# [Mobeye](https://www.mobeye-app.com) preliminary test ## Guidelines - [duplicate](https://help.github.com/articles/duplicating-a-repository/) this repository (do **not** fork it) - Answer the [exercises](https://github.com/Mobeye/algorithm-test-python/blob/master/exercises.py) - Commit your answers to your repository - The command ``python main.py`` is expected to run successfully ## Requirements - Python 3.6 - No dependencies needed ## Exercises If you don't find the solution of an exercise, don't worry, just write your thoughts and what you tried and we will look at it ### Exercise 1 In this exercise you need to write a function taking 2 strings as input and returning `True` if the strings are anagrams and `False` otherwise.
Two strings are anagrams if they contain exactly the same letters in a possibly different order.
Eg : `"abc"` and `"cab"` are anagrams, `"aab"` and `"bba"` are not ### Exercise 2 Here you will need to write an algorithm that determines if a string is properly parenthesized, ie it is of the form "(p)" or "pq" where p and q are properly parenthesized strings. Any string (including the empty string) that does not contain any parenthesis is properly parenthesized.
Eg : `"()()"` is properly parenthesized, `"(()"` is not ### Exercise 3 For this one you will need to find the shortest path in a maze from a start to an end. The maze is represented by a matrix (more exactly a list of lists) containing only 0 and 1 - 0 is a wall, 1 is a path.
Every coordinate in the maze is represented by a tuple `(x, y)` where x and y are the indices of the point in the list of lists. This function should return a list of points forming the shortest_path in the maze `[(x1, y1), (x2, y2), ...]` between `start` and `end`, or `False` if there is no path.
The only movements allowed are UP/DOWN/LEFT/RIGHT