<commit_before>---
layout: one_column
title: Interview Practice Problems
nav: nav-interview-problems
---

<header id="top_bar">
  <date class="current_date"></date>
</header>

<article class="post">

  <h2>Interview Practice Problems</h2>

  <p>
    Below if a list of practice interview problems collected from various
    sources including <a href="http://projecteuler.net/problems">Project
      Euler</a>, random questions from Stack Overflow, and generally programming
    questions that I believe every computer science student should know. Each problem has
    one or more solutions in multiple languages. Feel free to discuss the
    solutions in the comments of each question. If you have any specific
    questions or languages that you would like me to support, please send me an
    email (you can find my email address on the <a href="/contact">contact
      page</a>). The problems are arranged into three categories, "Beginner",
    "Intermediate", and "Advanced" and they are based upon my biased judgement.
  </p>


  <h3>Level 1 - Beginner</h3>
  <ul>
    {% assign interview_level = 'beginner' %}
    {% include 'interview_problems_set.html' %}
  </ul>

  <h3>Level 2 - Intermediate</h3>
  <ul>
    {% assign interview_level = 'intermediate' %}
    {% include 'interview_problems_set.html' %}
  </ul>

  <h3>Level 3 - Advanced</h3>
  <ul>
    {% assign interview_level = 'advanced' %}
    {% include 'interview_problems_set.html' %}
  </ul>

  <h2>Topics that you should be familiar with:</h2>
  <p>
    This list is in no way comprehensive and it is a work-in-progress. I'll try to update it as I think of new topics that are important to know.
  </p>
  <ul>
    <li><strong>Data Structures</strong></a> - Pay attention to how the data structures are implemented, the runtimes for <code>insert</code>, <code>lookup</code>, and <code>remove</code> and you should understand the advantages of using one over the other. Also think about which scenarios it makes sense to use which data structure.
      <ul>
        <li><a href="/cs61b/singly_linked_list">Singly Linked List</a></li>
        <li><a href="/cs61b/doubly_linked_list">Doubly Linked List</a></li>
      </ul>

    <li>More Data Structures (with links to Wikipedia -- I will write up my own versions when I have time)</li>
      <ul>
        <li><a href="http://en.wikipedia.org/wiki/Doubly_linked_list">Doubly-Linked List</a></li>
        <li><a href="http://en.wikipedia.org/wiki/Array_data_structure">Arrays</a></li><commit_msg>removing doubly linked lists (not finished yet)<commit_after>---
layout: one_column
title: Interview Practice Problems
nav: nav-interview-problems
---

<header id="top_bar">
  <date class="current_date"></date>
</header>

<article class="post">

  <h2>Interview Practice Problems</h2>

  <p>
    Below if a list of practice interview problems collected from various
    sources including <a href="http://projecteuler.net/problems">Project
      Euler</a>, random questions from Stack Overflow, and generally programming
    questions that I believe every computer science student should know. Each problem has
    one or more solutions in multiple languages. Feel free to discuss the
    solutions in the comments of each question. If you have any specific
    questions or languages that you would like me to support, please send me an
    email (you can find my email address on the <a href="/contact">contact
      page</a>). The problems are arranged into three categories, "Beginner",
    "Intermediate", and "Advanced" and they are based upon my biased judgement.
  </p>


  <h3>Level 1 - Beginner</h3>
  <ul>
    {% assign interview_level = 'beginner' %}
    {% include 'interview_problems_set.html' %}
  </ul>

  <h3>Level 2 - Intermediate</h3>
  <ul>
    {% assign interview_level = 'intermediate' %}
    {% include 'interview_problems_set.html' %}
  </ul>

  <h3>Level 3 - Advanced</h3>
  <ul>
    {% assign interview_level = 'advanced' %}
    {% include 'interview_problems_set.html' %}
  </ul>

  <h2>Topics that you should be familiar with:</h2>
  <p>
    This list is in no way comprehensive and it is a work-in-progress. I'll try to update it as I think of new topics that are important to know.
  </p>
  <ul>
    <li><strong>Data Structures</strong></a> - Pay attention to how the data structures are implemented, the runtimes for <code>insert</code>, <code>lookup</code>, and <code>remove</code> and you should understand the advantages of using one over the other. Also think about which scenarios it makes sense to use which data structure.
      <ul>
        <li><a href="/cs61b/singly_linked_list">Singly Linked List</a></li>
      </ul>

    <li>More Data Structures (with links to Wikipedia -- I will write up my own versions when I have time)</li>
      <ul>
        <li><a href="http://en.wikipedia.org/wiki/Doubly_linked_list">Doubly-Linked List</a></li>
        <li><a href="http://en.wikipedia.org/wiki/Array_data_structure">Arrays</a></li>
{'fraction_non_alphanumeric': 0.11671353957412615, 'fraction_numerical': 0.0064282844515869825, 'mean_word_length': 3.6059204440333024, 'pattern_counts': {'":': 0, '<': 121, '<?xml version=': 0, '>': 121, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '752419', 'n_tokens_mistral': 1543, 'n_tokens_neox': 1456, 'n_words': 545}