Filtering company-specific problems by difficulty with Chrome bookmarks

Hello,

While you CAN filter the problems list by difficulty - you CAN'T do the same for a company-specific page.

Chrome bookmarks to the rescue!

For example, you can only show Medium problems from Google.

Before:
image

Select difficulty:
image

After (Note: the problem counter gets updated, too!):
image

Bookmarks

Bookmark for Easy problems:

  • Name: Easy
  • Url: javascript: (function (name) { table = document.getElementsByTagName('tbody')[0]; rows = table.getElementsByTagName('tr'); solved = 0; total = 0; for (i = rows.length - 1; i >= 0; --i) { td = rows[i].getElementsByTagName('td')[4]; if (td.getElementsByTagName('span')[0].textContent != name) { table.removeChild(rows[i]); } else { total += 1; if (rows[i].getElementsByTagName('td')[0].getElementsByTagName('span').length > 0) { solved += 1; } } } ps = document.getElementsByTagName('p'); for (var i = 0; i < ps.length; ++i) { if (ps[i].getElementsByTagName('strong').length > 0) { strong = ps[i].getElementsByTagName('strong')[0]; strong.innerHTML = solved + " / " + total; } } })('Easy');

Bookmark for Medium problems:

  • Name: Medium
  • Url: javascript: (function (name) { table = document.getElementsByTagName('tbody')[0]; rows = table.getElementsByTagName('tr'); solved = 0; total = 0; for (i = rows.length - 1; i >= 0; --i) { td = rows[i].getElementsByTagName('td')[4]; if (td.getElementsByTagName('span')[0].textContent != name) { table.removeChild(rows[i]); } else { total += 1; if (rows[i].getElementsByTagName('td')[0].getElementsByTagName('span').length > 0) { solved += 1; } } } ps = document.getElementsByTagName('p'); for (var i = 0; i < ps.length; ++i) { if (ps[i].getElementsByTagName('strong').length > 0) { strong = ps[i].getElementsByTagName('strong')[0]; strong.innerHTML = solved + " / " + total; } } })('Medium');

Bookmark for Hard problems:

  • Name: Hard
  • Url: javascript: (function (name) { table = document.getElementsByTagName('tbody')[0]; rows = table.getElementsByTagName('tr'); solved = 0; total = 0; for (i = rows.length - 1; i >= 0; --i) { td = rows[i].getElementsByTagName('td')[4]; if (td.getElementsByTagName('span')[0].textContent != name) { table.removeChild(rows[i]); } else { total += 1; if (rows[i].getElementsByTagName('td')[0].getElementsByTagName('span').length > 0) { solved += 1; } } } ps = document.getElementsByTagName('p'); for (var i = 0; i < ps.length; ++i) { if (ps[i].getElementsByTagName('strong').length > 0) { strong = ps[i].getElementsByTagName('strong')[0]; strong.innerHTML = solved + " / " + total; } } })('Hard');

Hope this helps and good luck with your interviews!

Comments (1)