LeedCodeの問題一覧を無料問題のみに絞り込む


LeetCodeの問題一覧ページは、難易度やタグで絞り込むことはできるのですが、プレミアム会員しか見ることのできないロックされた問題を除外するフィルター機能がありません。

そこでブックマークレットを作成しました。

filter.js
javascript: (() => {
    let all = 0;
    let locked = 0;
    const tr = document.querySelectorAll('.ant-table-tbody tr.ant-table-row');
    for (let i = 0; i < tr.length; i++) {
        all++;
        if (tr[i]['cells'][1]
                && tr[i]['cells'][1].querySelectorAll('svg').length) {
            locked++;
            tr[i].hidden = true;
        }
    }
    console.log("All:", all);
    console.log("Locked:", locked);
    console.log("Free:", all - locked);
})();

ブックマークバーに新たなブックマークとしてURL欄に上記のコードをコピペしたものを保存1し、問題一覧ページで追加したブックマークレットをクリックすると、無料で解ける問題のみに絞り込まれます。

コンソールには、全問題数、ロックされた問題数、無料で解ける問題数を表示しています。


  1. 本当はドラッグ&ドロップでブックマークバーに追加できるようにリンクで表示したかったのですが、Qiitaの仕様上、リンク先がJavaScriptだとクリックできないようなので諦めました。