<commit_before>Cracking The Google Interview
=============================

This repository contains the solutions for algorithmic puzzles, interview questions, datastructure implementations and materials for basic cs concepts  for top tech companies like Google, Amazon, Twitter, Facebook, Apple, Yelp, Uber etc.

Usage
=====
###How do I see interview questions?
Interview questions for the top tech companies like Facebook, Google, Amazon, Twitter, Apple, Uber, Yelp, Nvidia are available in [com.ctgi.google.problems.questions](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/problems/questions) folder. Files are named as COMPANY_interview_questions.gl.py.There is one file named interview_questions.gl.py which has interview questions from different companies mixed. Company name is mentioned next to the questions in square bracket [].

###How do I see answers for the interview questions?
Answers for the questions are available in [com.ctgi.google.problems](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/problems/) folder. Every question will have the java class name mentioned next to question in square bracket [] if it has an answer.

###How do I learn about CS concepts to prepare  for top tech interviews?
Materials for computer science concepts like operating system[Semaphores, mutual exclusion, critical section etc.], networks[dhcp, dns, nat, tcp, udp, website flow etc.], bigdata[elastic search, memcache, search etc.], machine architecture[CPU, GPU, X86 etc.] are available in [com.ctgi.google.concepts](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/concepts).

###Where can I refer datastructure implementations?
Datastructure implemantations like Hashtable, Linkedlist[Singly, Doubly, Circular], Graph, Tree,Cache[LRU, MRU] etc. in [com.ctgi.google.implementation](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/implementation).

###Where do I learn about programming language related topics/issues?
Programming language related topics like java-[abstract classes, jvm, memory etc.], c-[compilation, macros, malloc, pointers, segmentation fault, stack/heap memory etc.] is available in [com.ctgi.google.languages](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/languages)

###Where can I find common mistakes we do in interviews in programming challenges?
Common mistakes like Division by zero, array out of bound exceptions, recursive base cases are available in [com.ctgi.google.mistakes](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/mistakes)

##Install

This library has the solutions in Java.

##Licensing
ctgi is licensed under MIT License. See LICENSE for full license text.

##Contributions
Contributions are most welcome. You can make pull requests after your commit.
  
###Project Contributor

* <NAME> ([@DineshAppavoo](http://utdallas.edu/~dxa132330))<commit_msg>Updated multi threading<commit_after>Cracking The Google Interview
=============================

This repository contains the solutions for algorithmic puzzles, interview questions, datastructure implementations and materials for basic cs concepts  for top tech companies like Google, Amazon, Twitter, Facebook, Apple, Yelp, Uber etc.

Usage
=====
###How do I see interview questions?
Interview questions for the top tech companies like Facebook, Google, Amazon, Twitter, Apple, Uber, Yelp, Nvidia are available in [com.ctgi.google.problems.questions](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/problems/questions) folder. Files are named as COMPANY_interview_questions.gl.py.There is one file named interview_questions.gl.py which has interview questions from different companies mixed. Company name is mentioned next to the questions in square bracket [].

###How do I see answers for the interview questions?
Answers for the questions are available in [com.ctgi.google.problems](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/problems/) folder. Every question will have the java class name mentioned next to question in square bracket [] if it has an answer.

###How do I learn about CS concepts to prepare  for top tech interviews?
Materials for computer science concepts like operating system[Semaphores, mutual exclusion, critical section etc.], networks[dhcp, dns, nat, tcp, udp, website flow etc.], bigdata[elastic search, memcache, search etc.], machine architecture[CPU, GPU, X86 etc.] are available in [com.ctgi.google.concepts](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/concepts).

###Where can I refer datastructure implementations?
Datastructure implemantations like Hashtable, Linkedlist[Singly, Doubly, Circular], Graph, Tree,Cache[LRU, MRU] etc. in [com.ctgi.google.implementation](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/implementation).

###Where do I learn about programming language related topics/issues?
Programming language related topics like java-[abstract classes, jvm, memory etc.], c-[compilation, macros, malloc, pointers, segmentation fault, stack/heap memory etc.] is available in [com.ctgi.google.languages](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/languages)

###Where can I find common mistakes we do in interviews in programming challenges?
Common mistakes like Division by zero, array out of bound exceptions, recursive base cases are available in [com.ctgi.google.mistakes](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/mistakes)

###How do I learn about multi-threading?
Multi threading concepts like multicore, hyperthreading etc. are available in [com.ctgi.google.threads](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/threads). And problems related to threading like DiningPhilosophers, ProducerConsumer are available in [com.ctgi.google.threads.java](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/threads/java). And the c implementations are in [com.ctgi.google.threads.c](https://github.com/dineshappavoo/ctgi/tree/master/src/com/ctgi/google/threads/c)

##Install

This library has the solutions in Java.

##Licensing
ctgi is licensed under MIT License. See LICENSE for full license text.

##Contributions
Contributions are most welcome. You can make pull requests after your commit.
  
###Project Contributor

* <NAME> ([@DineshAppavoo](http://utdallas.edu/~dxa132330))
{'fraction_non_alphanumeric': 0.10555641541557034, 'fraction_numerical': 0.002476396842594026, 'mean_word_length': 5.573753814852492, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 15, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6658338', 'n_tokens_mistral': 1872, 'n_tokens_neox': 1750, 'n_words': 633}