sample solutions to various software engineering coding interviews