Greasy Fork

Greasy Fork is available in English.

Leetcode Answer Helper

查找leetcode题解(本脚本支持在九章算法的题解搜索,提供Github上开源的python题解的一键查询按钮,可以直接在谷歌搜索题目名称,还能切换语言)

目前为 2019-06-22 提交的版本。查看 最新版本

// ==UserScript==
// @name         Leetcode Answer Helper
// @namespace    leetcode_helper
// @version      1.0.0
// @description  查找leetcode题解(本脚本支持在九章算法的题解搜索,提供Github上开源的python题解的一键查询按钮,可以直接在谷歌搜索题目名称,还能切换语言)
// @author       sherpahu
// @icon 		 https://assets.leetcode.com/static_assets/public/webpack_bundles/images/logo-dark.e99485d9b.svg
// @include      *://leetcode-cn.com/problems/*
// @include      *://leetcode.com/problems/*
/************************************/
// @connect 	 jiuzhang.com
// @connect		 github.com
// @require      http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @require 	 http://greasyfork.icu/scripts/376804-intelligent-weight/code/Intelligent_weight.js?version=702787
// @compatible	 Chrome
// ==/UserScript==

(function() {
	'use strict';
    var $ = $ || window.$;
    var window_url = window.location.href;
    var website_host = window.location.host;
    let isGlobal = false;
    
    //leetcode题解助手
    var leetcodeHelper={};
    leetcodeHelper.addHtml=function(){
    	//只有leetcode才能通过
    	if(window_url.indexOf("leetcode.com/problem") != -1){
            isGlobal = true;
        } else if(window_url.indexOf("leetcode-cn.com/problems") != -1){
    		isGlobal = false;
    	} else {
            return;
        }
    	//iframe中不再执行
    	if(window.top != window.self){
    		return;
    	}
    	
		//左边图标追加
    	var topBox = "<div style='position:fixed;z-index:999999;background-color:#ccc;cursor:pointer;bottom:50px;right:0px;'>"+
						"<div id='search_jiuzhang' style='font-size:13px;padding:10px 2px;color:#FFF;background-color:#25AE84;'>九章</div>"+
						"<div id='search_python' style='font-size:13px;padding:10px 2px;color:#FFF;background-color:#DD5A57;'>python</div>"+
						"<div id='search_with_google' style='font-size:13px;padding:10px 2px;color:#FFF;background-color:#FE8A23;'>搜索</div>"+
                        "<div id='change_language' style='font-size:13px;padding:10px 2px;color:#FFF;background-color:#3C22FE;'>切换</div>"+
				 	 "</div>";
		$("body").append(topBox);
		
    	//提取题目名称
        var problemName = (window_url.split('/'))[4];

        //在九章算法上查找
    	var jiuzhangUrl = "https://www.jiuzhang.com/solution/@";
    	$("body").on("click","#search_jiuzhang",function(){
    		jiuzhangUrl = jiuzhangUrl.replace(/@/g, encodeURIComponent(problemName));
    		//GM_setValue("document_url",window_url);
	    	window.open(jiuzhangUrl, "_blank");
	    });

        //在https://github.com/csujedihy/lc-all-solutions中找python的答案
        var pythonUrl = "https://github.com/csujedihy/lc-all-solutions/tree/master/@";
	    $("body").on("click","#search_python",function(){
            var id = "001";
            //const leetcodeId2Name = {"665": "non-decreasing-array", "664": "strange-printer", "662": "maximum-width-of-binary-tree", "661": "image-smoother", "659": "split-array-into-consecutive-subsequences", "658": "find-k-closest-elements", "657": "robot-return-to-origin", "655": "print-binary-tree", "654": "maximum-binary-tree", "653": "two-sum-iv-input-is-a-bst", "652": "find-duplicate-subtrees", "650": "2-keys-keyboard", "649": "dota2-senate", "648": "replace-words", "647": "palindromic-substrings", "646": "maximum-length-of-pair-chain", "645": "set-mismatch", "643": "maximum-average-subarray-i", "640": "solve-the-equation", "639": "decode-ways-ii", "638": "shopping-offers", "637": "average-of-levels-in-binary-tree", "636": "exclusive-time-of-functions", "633": "sum-of-square-numbers", "632": "smallest-range", "630": "course-schedule-iii", "629": "k-inverse-pairs-array", "628": "maximum-product-of-three-numbers", "627": "swap-salary", "626": "exchange-seats", "623": "add-one-row-to-tree", "621": "task-scheduler", "620": "not-boring-movies", "617": "merge-two-binary-trees", "611": "valid-triangle-number", "609": "find-duplicate-file-in-system", "606": "construct-string-from-binary-tree", "605": "can-place-flowers", "601": "human-traffic-of-stadium", "600": "non-negative-integers-without-consecutive-ones", "599": "minimum-index-sum-of-two-lists", "598": "range-addition-ii", "596": "classes-more-than-5-students", "595": "big-countries", "594": "longest-harmonious-subsequence", "593": "valid-square", "592": "fraction-addition-and-subtraction", "591": "tag-validator", "587": "erect-the-fence", "583": "delete-operation-for-two-strings", "581": "shortest-unsorted-continuous-subarray", "576": "out-of-boundary-paths", "575": "distribute-candies", "572": "subtree-of-another-tree", "567": "permutation-in-string", "566": "reshape-the-matrix", "565": "array-nesting", "564": "find-the-closest-palindrome", "563": "binary-tree-tilt", "561": "array-partition-i", "560": "subarray-sum-equals-k", "557": "reverse-words-in-a-string-iii", "556": "next-greater-element-iii", "554": "brick-wall", "553": "optimal-division", "552": "student-attendance-record-ii", "551": "student-attendance-record-i", "547": "friend-circles", "546": "remove-boxes", "543": "diameter-of-binary-tree", "542": "01-matrix", "541": "reverse-string-ii", "540": "single-element-in-a-sorted-array", "539": "minimum-time-difference", "538": "convert-bst-to-greater-tree", "537": "complex-number-multiplication", "535": "encode-and-decode-tinyurl", "532": "k-diff-pairs-in-an-array", "530": "minimum-absolute-difference-in-bst", "529": "minesweeper", "526": "beautiful-arrangement", "525": "contiguous-array", "524": "longest-word-in-dictionary-through-deleting", "523": "continuous-subarray-sum", "522": "longest-uncommon-subsequence-ii", "521": "longest-uncommon-subsequence-i", "520": "detect-capital", "518": "coin-change-2", "517": "super-washing-machines", "516": "longest-palindromic-subsequence", "515": "find-largest-value-in-each-tree-row", "514": "freedom-trail", "513": "find-bottom-left-tree-value", "508": "most-frequent-subtree-sum", "507": "perfect-number", "506": "relative-ranks", "504": "base-7", "503": "next-greater-element-ii", "502": "ipo", "501": "find-mode-in-binary-search-tree", "500": "keyboard-row", "498": "diagonal-traverse", "496": "next-greater-element-i", "495": "teemo-attacking", "494": "target-sum", "493": "reverse-pairs", "492": "construct-the-rectangle", "491": "increasing-subsequences", "488": "zuma-game", "486": "predict-the-winner", "485": "max-consecutive-ones", "483": "smallest-good-base", "482": "license-key-formatting", "481": "magical-string", "480": "sliding-window-median", "479": "largest-palindrome-product", "477": "total-hamming-distance", "476": "number-complement", "475": "heaters", "474": "ones-and-zeroes", "473": "matchsticks-to-square", "472": "concatenated-words", "468": "validate-ip-address", "467": "unique-substrings-in-wraparound-string", "466": "count-the-repetitions", "464": "can-i-win", "463": "island-perimeter", "462": "minimum-moves-to-equal-array-elements-ii", "461": "hamming-distance", "460": "lfu-cache", "459": "repeated-substring-pattern", "458": "poor-pigs", "457": "circular-array-loop", "456": "132-pattern", "455": "assign-cookies", "454": "4sum-ii", "453": "minimum-moves-to-equal-array-elements", "452": "minimum-number-of-arrows-to-burst-balloons", "451": "sort-characters-by-frequency", "450": "delete-node-in-a-bst", "449": "serialize-and-deserialize-bst", "448": "find-all-numbers-disappeared-in-an-array", "447": "number-of-boomerangs", "446": "arithmetic-slices-ii-subsequence", "445": "add-two-numbers-ii", "443": "string-compression", "442": "find-all-duplicates-in-an-array", "441": "arranging-coins", "440": "k-th-smallest-in-lexicographical-order", "438": "find-all-anagrams-in-a-string", "437": "path-sum-iii", "436": "find-right-interval", "435": "non-overlapping-intervals", "434": "number-of-segments-in-a-string", "433": "minimum-genetic-mutation", "432": "all-oone-data-structure", "424": "longest-repeating-character-replacement", "423": "reconstruct-original-digits-from-english", "421": "maximum-xor-of-two-numbers-in-an-array", "420": "strong-password-checker", "419": "battleships-in-a-board", "417": "pacific-atlantic-water-flow", "416": "partition-equal-subset-sum", "415": "add-strings", "414": "third-maximum-number", "413": "arithmetic-slices", "412": "fizz-buzz", "410": "split-array-largest-sum", "409": "longest-palindrome", "407": "trapping-rain-water-ii", "406": "queue-reconstruction-by-height", "405": "convert-a-number-to-hexadecimal", "404": "sum-of-left-leaves", "403": "frog-jump", "402": "remove-k-digits", "401": "binary-watch", "400": "nth-digit", "399": "evaluate-division", "398": "random-pick-index", "397": "integer-replacement", "396": "rotate-function", "395": "longest-substring-with-at-least-k-repeating-characters", "394": "decode-string", "393": "utf-8-validation", "392": "is-subsequence", "391": "perfect-rectangle", "390": "elimination-game", "389": "find-the-difference", "388": "longest-absolute-file-path", "387": "first-unique-character-in-a-string", "386": "lexicographical-numbers", "385": "mini-parser", "384": "shuffle-an-array", "383": "ransom-note", "382": "linked-list-random-node", "381": "insert-delete-getrandom-o1-duplicates-allowed", "380": "insert-delete-getrandom-o1", "378": "kth-smallest-element-in-a-sorted-matrix", "377": "combination-sum-iv", "376": "wiggle-subsequence", "375": "guess-number-higher-or-lower-ii", "374": "guess-number-higher-or-lower", "373": "find-k-pairs-with-smallest-sums", "372": "super-pow", "371": "sum-of-two-integers", "368": "largest-divisible-subset", "367": "valid-perfect-square", "365": "water-and-jug-problem", "363": "max-sum-of-rectangle-no-larger-than-k", "357": "count-numbers-with-unique-digits", "355": "design-twitter", "354": "russian-doll-envelopes", "352": "data-stream-as-disjoint-intervals", "350": "intersection-of-two-arrays-ii", "349": "intersection-of-two-arrays", "347": "top-k-frequent-elements", "345": "reverse-vowels-of-a-string", "344": "reverse-string", "343": "integer-break", "342": "power-of-four", "341": "flatten-nested-list-iterator", "338": "counting-bits", "337": "house-robber-iii", "336": "palindrome-pairs", "335": "self-crossing", "334": "increasing-triplet-subsequence", "332": "reconstruct-itinerary", "331": "verify-preorder-serialization-of-a-binary-tree", "330": "patching-array", "329": "longest-increasing-path-in-a-matrix", "328": "odd-even-linked-list", "327": "count-of-range-sum", "326": "power-of-three", "324": "wiggle-sort-ii", "322": "coin-change", "321": "create-maximum-number", "319": "bulb-switcher", "318": "maximum-product-of-word-lengths", "316": "remove-duplicate-letters", "315": "count-of-smaller-numbers-after-self", "313": "super-ugly-number", "312": "burst-balloons", "310": "minimum-height-trees", "309": "best-time-to-buy-and-sell-stock-with-cooldown", "307": "range-sum-query-mutable", "306": "additive-number", "304": "range-sum-query-2d-immutable", "303": "range-sum-query-immutable", "301": "remove-invalid-parentheses", "300": "longest-increasing-subsequence", "299": "bulls-and-cows", "297": "serialize-and-deserialize-binary-tree", "295": "find-median-from-data-stream", "292": "nim-game", "290": "word-pattern", "289": "game-of-life", "287": "find-the-duplicate-number", "284": "peeking-iterator", "283": "move-zeroes", "282": "expression-add-operators", "279": "perfect-squares", "278": "first-bad-version", "275": "h-index-ii", "274": "h-index", "273": "integer-to-english-words", "268": "missing-number", "264": "ugly-number-ii", "263": "ugly-number", "262": "trips-and-users", "260": "single-number-iii", "258": "add-digits", "257": "binary-tree-paths", "242": "valid-anagram", "241": "different-ways-to-add-parentheses", "240": "search-a-2d-matrix-ii", "239": "sliding-window-maximum", "238": "product-of-array-except-self", "237": "delete-node-in-a-linked-list", "236": "lowest-common-ancestor-of-a-binary-tree", "235": "lowest-common-ancestor-of-a-binary-search-tree", "234": "palindrome-linked-list", "233": "number-of-digit-one", "232": "implement-queue-using-stacks", "231": "power-of-two", "230": "kth-smallest-element-in-a-bst", "229": "majority-element-ii", "228": "summary-ranges", "227": "basic-calculator-ii", "226": "invert-binary-tree", "225": "implement-stack-using-queues", "224": "basic-calculator", "223": "rectangle-area", "222": "count-complete-tree-nodes", "221": "maximal-square", "220": "contains-duplicate-iii", "219": "contains-duplicate-ii", "218": "the-skyline-problem", "217": "contains-duplicate", "216": "combination-sum-iii", "215": "kth-largest-element-in-an-array", "214": "shortest-palindrome", "213": "house-robber-ii", "212": "word-search-ii", "211": "add-and-search-word-data-structure-design", "210": "course-schedule-ii", "209": "minimum-size-subarray-sum", "208": "implement-trie-prefix-tree", "207": "course-schedule", "206": "reverse-linked-list", "205": "isomorphic-strings", "204": "count-primes", "203": "remove-linked-list-elements", "202": "happy-number", "201": "bitwise-and-of-numbers-range", "200": "number-of-islands", "199": "binary-tree-right-side-view", "198": "house-robber", "197": "rising-temperature", "196": "delete-duplicate-emails", "195": "tenth-line", "194": "transpose-file", "193": "valid-phone-numbers", "192": "word-frequency", "191": "number-of-1-bits", "190": "reverse-bits", "189": "rotate-array", "188": "best-time-to-buy-and-sell-stock-iv", "187": "repeated-dna-sequences", "185": "department-top-three-salaries", "184": "department-highest-salary", "183": "customers-who-never-order", "182": "duplicate-emails", "181": "employees-earning-more-than-their-managers", "180": "consecutive-numbers", "179": "largest-number", "178": "rank-scores", "177": "nth-highest-salary", "176": "second-highest-salary", "175": "combine-two-tables", "174": "dungeon-game", "173": "binary-search-tree-iterator", "172": "factorial-trailing-zeroes", "171": "excel-sheet-column-number", "169": "majority-element", "168": "excel-sheet-column-title", "167": "two-sum-ii-input-array-is-sorted", "166": "fraction-to-recurring-decimal", "165": "compare-version-numbers", "164": "maximum-gap", "162": "find-peak-element", "160": "intersection-of-two-linked-lists", "155": "min-stack", "154": "find-minimum-in-rotated-sorted-array-ii", "153": "find-minimum-in-rotated-sorted-array", "152": "maximum-product-subarray", "151": "reverse-words-in-a-string", "150": "evaluate-reverse-polish-notation", "149": "max-points-on-a-line", "148": "sort-list", "147": "insertion-sort-list", "146": "lru-cache", "145": "binary-tree-postorder-traversal", "144": "binary-tree-preorder-traversal", "143": "reorder-list", "142": "linked-list-cycle-ii", "141": "linked-list-cycle", "140": "word-break-ii", "139": "word-break", "138": "copy-list-with-random-pointer", "137": "single-number-ii", "136": "single-number", "135": "candy", "134": "gas-station", "133": "clone-graph", "132": "palindrome-partitioning-ii", "131": "palindrome-partitioning", "130": "surrounded-regions", "129": "sum-root-to-leaf-numbers", "128": "longest-consecutive-sequence", "127": "word-ladder", "126": "word-ladder-ii", "125": "valid-palindrome", "124": "binary-tree-maximum-path-sum", "123": "best-time-to-buy-and-sell-stock-iii", "122": "best-time-to-buy-and-sell-stock-ii", "121": "best-time-to-buy-and-sell-stock", "120": "triangle", "119": "pascals-triangle-ii", "118": "pascals-triangle", "117": "populating-next-right-pointers-in-each-node-ii", "116": "populating-next-right-pointers-in-each-node", "115": "distinct-subsequences", "114": "flatten-binary-tree-to-linked-list", "113": "path-sum-ii", "112": "path-sum", "111": "minimum-depth-of-binary-tree", "110": "balanced-binary-tree", "109": "convert-sorted-list-to-binary-search-tree", "108": "convert-sorted-array-to-binary-search-tree", "107": "binary-tree-level-order-traversal-ii", "106": "construct-binary-tree-from-inorder-and-postorder-traversal", "105": "construct-binary-tree-from-preorder-and-inorder-traversal", "104": "maximum-depth-of-binary-tree", "103": "binary-tree-zigzag-level-order-traversal", "102": "binary-tree-level-order-traversal", "101": "symmetric-tree", "100": "same-tree", "99": "recover-binary-search-tree", "98": "validate-binary-search-tree", "97": "interleaving-string", "96": "unique-binary-search-trees", "95": "unique-binary-search-trees-ii", "94": "binary-tree-inorder-traversal", "93": "restore-ip-addresses", "92": "reverse-linked-list-ii", "91": "decode-ways", "90": "subsets-ii", "89": "gray-code", "88": "merge-sorted-array", "87": "scramble-string", "86": "partition-list", "85": "maximal-rectangle", "84": "largest-rectangle-in-histogram", "83": "remove-duplicates-from-sorted-list", "82": "remove-duplicates-from-sorted-list-ii", "81": "search-in-rotated-sorted-array-ii", "80": "remove-duplicates-from-sorted-array-ii", "79": "word-search", "78": "subsets", "77": "combinations", "76": "minimum-window-substring", "75": "sort-colors", "74": "search-a-2d-matrix", "73": "set-matrix-zeroes", "72": "edit-distance", "71": "simplify-path", "70": "climbing-stairs", "69": "sqrtx", "68": "text-justification", "67": "add-binary", "66": "plus-one", "65": "valid-number", "64": "minimum-path-sum", "63": "unique-paths-ii", "62": "unique-paths", "61": "rotate-list", "60": "permutation-sequence", "59": "spiral-matrix-ii", "58": "length-of-last-word", "57": "insert-interval", "56": "merge-intervals", "55": "jump-game", "54": "spiral-matrix", "53": "maximum-subarray", "52": "n-queens-ii", "51": "n-queens", "50": "powx-n", "49": "group-anagrams", "48": "rotate-image", "47": "permutations-ii", "46": "permutations", "45": "jump-game-ii", "44": "wildcard-matching", "43": "multiply-strings", "42": "trapping-rain-water", "41": "first-missing-positive", "40": "combination-sum-ii", "39": "combination-sum", "38": "count-and-say", "37": "sudoku-solver", "36": "valid-sudoku", "35": "search-insert-position", "34": "find-first-and-last-position-of-element-in-sorted-array", "33": "search-in-rotated-sorted-array", "32": "longest-valid-parentheses", "31": "next-permutation", "30": "substring-with-concatenation-of-all-words", "29": "divide-two-integers", "28": "implement-strstr", "27": "remove-element", "26": "remove-duplicates-from-sorted-array", "25": "reverse-nodes-in-k-group", "24": "swap-nodes-in-pairs", "23": "merge-k-sorted-lists", "22": "generate-parentheses", "21": "merge-two-sorted-lists", "20": "valid-parentheses", "19": "remove-nth-node-from-end-of-list", "18": "4sum", "17": "letter-combinations-of-a-phone-number", "16": "3sum-closest", "15": "3sum", "14": "longest-common-prefix", "13": "roman-to-integer", "12": "integer-to-roman", "11": "container-with-most-water", "10": "regular-expression-matching", "9": "palindrome-number", "8": "string-to-integer-atoi", "7": "reverse-integer", "6": "zigzag-conversion", "5": "longest-palindromic-substring", "4": "median-of-two-sorted-arrays", "3": "longest-substring-without-repeating-characters", "2": "add-two-numbers", "1": "two-sum"}
            const leetcodeName2Id = {"non-decreasing-array":  "665", "strange-printer":  "664", "maximum-width-of-binary-tree":  "662", "image-smoother":  "661", "split-array-into-consecutive-subsequences":  "659", "find-k-closest-elements":  "658", "robot-return-to-origin":  "657", "print-binary-tree":  "655", "maximum-binary-tree":  "654", "two-sum-iv-input-is-a-bst":  "653", "find-duplicate-subtrees":  "652", "2-keys-keyboard":  "650", "dota2-senate":  "649", "replace-words":  "648", "palindromic-substrings":  "647", "maximum-length-of-pair-chain":  "646", "set-mismatch":  "645", "maximum-average-subarray-i":  "643", "solve-the-equation":  "640", "decode-ways-ii":  "639", "shopping-offers":  "638", "average-of-levels-in-binary-tree":  "637", "exclusive-time-of-functions":  "636", "sum-of-square-numbers":  "633", "smallest-range":  "632", "course-schedule-iii":  "630", "k-inverse-pairs-array":  "629", "maximum-product-of-three-numbers":  "628", "swap-salary":  "627", "exchange-seats":  "626", "add-one-row-to-tree":  "623", "task-scheduler":  "621", "not-boring-movies":  "620", "merge-two-binary-trees":  "617", "valid-triangle-number":  "611", "find-duplicate-file-in-system":  "609", "construct-string-from-binary-tree":  "606", "can-place-flowers":  "605", "human-traffic-of-stadium":  "601", "non-negative-integers-without-consecutive-ones":  "600", "minimum-index-sum-of-two-lists":  "599", "range-addition-ii":  "598", "classes-more-than-5-students":  "596", "big-countries":  "595", "longest-harmonious-subsequence":  "594", "valid-square":  "593", "fraction-addition-and-subtraction":  "592", "tag-validator":  "591", "erect-the-fence":  "587", "delete-operation-for-two-strings": "583", "shortest-unsorted-continuous-subarray":  "581", "out-of-boundary-paths":  "576", "distribute-candies":  "575", "subtree-of-another-tree":  "572", "permutation-in-string":  "567", "reshape-the-matrix":  "566", "array-nesting":  "565", "find-the-closest-palindrome":  "564", "binary-tree-tilt":  "563", "array-partition-i":  "561", "subarray-sum-equals-k":  "560", "reverse-words-in-a-string-iii":  "557", "next-greater-element-iii":  "556", "brick-wall":  "554", "optimal-division":  "553", "student-attendance-record-ii":  "552", "student-attendance-record-i":  "551", "friend-circles":  "547", "remove-boxes":  "546", "diameter-of-binary-tree":  "543", "01-matrix":  "542", "reverse-string-ii":  "541", "single-element-in-a-sorted-array":  "540", "minimum-time-difference":  "539", "convert-bst-to-greater-tree":  "538", "complex-number-multiplication":  "537", "encode-and-decode-tinyurl":  "535", "k-diff-pairs-in-an-array":  "532", "minimum-absolute-difference-in-bst":  "530", "minesweeper":  "529", "beautiful-arrangement":  "526", "contiguous-array":  "525", "longest-word-in-dictionary-through-deleting":  "524", "continuous-subarray-sum":  "523", "longest-uncommon-subsequence-ii":  "522", "longest-uncommon-subsequence-i":  "521", "detect-capital":  "520", "coin-change-2":  "518", "super-washing-machines":  "517", "longest-palindromic-subsequence":  "516", "find-largest-value-in-each-tree-row":  "515", "freedom-trail":  "514", "find-bottom-left-tree-value":  "513", "most-frequent-subtree-sum":  "508", "perfect-number":  "507", "relative-ranks":  "506", "base-7":  "504", "next-greater-element-ii":  "503", "ipo":  "502", "find-mode-in-binary-search-tree":  "501", "keyboard-row":  "500", "diagonal-traverse":  "498", "next-greater-element-i":  "496", "teemo-attacking":  "495", "target-sum":  "494", "reverse-pairs":  "493", "construct-the-rectangle":  "492", "increasing-subsequences":  "491", "zuma-game":  "488", "predict-the-winner":  "486", "max-consecutive-ones":  "485", "smallest-good-base":  "483", "license-key-formatting":  "482", "magical-string":  "481", "sliding-window-median":  "480", "largest-palindrome-product":  "479", "total-hamming-distance":  "477", "number-complement":  "476", "heaters":  "475", "ones-and-zeroes":  "474", "matchsticks-to-square":  "473", "concatenated-words":  "472", "validate-ip-address":  "468", "unique-substrings-in-wraparound-string":  "467", "count-the-repetitions":  "466", "can-i-win":  "464", "island-perimeter":  "463", "minimum-moves-to-equal-array-elements-ii":  "462", "hamming-distance":  "461", "lfu-cache":  "460", "repeated-substring-pattern":  "459", "poor-pigs":  "458", "circular-array-loop":  "457", "132-pattern":  "456", "assign-cookies":  "455", "4sum-ii":  "454", "minimum-moves-to-equal-array-elements":  "453", "minimum-number-of-arrows-to-burst-balloons":  "452", "sort-characters-by-frequency":  "451", "delete-node-in-a-bst":  "450", "serialize-and-deserialize-bst":  "449", "find-all-numbers-disappeared-in-an-array":  "448", "number-of-boomerangs":  "447", "arithmetic-slices-ii-subsequence":  "446", "add-two-numbers-ii":  "445", "string-compression":  "443", "find-all-duplicates-in-an-array":  "442", "arranging-coins":  "441", "k-th-smallest-in-lexicographical-order":  "440", "find-all-anagrams-in-a-string":  "438", "path-sum-iii":  "437", "find-right-interval":  "436", "non-overlapping-intervals":  "435", "number-of-segments-in-a-string":  "434", "minimum-genetic-mutation":  "433", "all-oone-data-structure":  "432", "longest-repeating-character-replacement":  "424", "reconstruct-original-digits-from-english":  "423", "maximum-xor-of-two-numbers-in-an-array":  "421", "strong-password-checker":  "420", "battleships-in-a-board":  "419", "pacific-atlantic-water-flow":  "417", "partition-equal-subset-sum":  "416", "add-strings":  "415", "third-maximum-number":  "414", "arithmetic-slices":  "413", "fizz-buzz":  "412", "split-array-largest-sum":  "410", "longest-palindrome":  "409", "trapping-rain-water-ii":  "407", "queue-reconstruction-by-height":  "406", "convert-a-number-to-hexadecimal":  "405", "sum-of-left-leaves":  "404", "frog-jump":  "403", "remove-k-digits":  "402", "binary-watch":  "401", "nth-digit":  "400", "evaluate-division":  "399", "random-pick-index":  "398", "integer-replacement":  "397", "rotate-function":  "396", "longest-substring-with-at-least-k-repeating-characters":  "395", "decode-string":  "394", "utf-8-validation":  "393", "is-subsequence":  "392", "perfect-rectangle":  "391", "elimination-game":  "390", "find-the-difference":  "389", "longest-absolute-file-path":  "388", "first-unique-character-in-a-string":  "387", "lexicographical-numbers":  "386", "mini-parser":  "385", "shuffle-an-array":  "384", "ransom-note":  "383", "linked-list-random-node":  "382", "insert-delete-getrandom-o1-duplicates-allowed":  "381", "insert-delete-getrandom-o1":  "380", "kth-smallest-element-in-a-sorted-matrix":  "378", "combination-sum-iv":  "377", "wiggle-subsequence":  "376", "guess-number-higher-or-lower-ii":  "375", "guess-number-higher-or-lower":  "374", "find-k-pairs-with-smallest-sums":  "373", "super-pow":  "372", "sum-of-two-integers":  "371", "largest-divisible-subset":  "368", "valid-perfect-square":  "367", "water-and-jug-problem":  "365", "max-sum-of-rectangle-no-larger-than-k":  "363", "count-numbers-with-unique-digits":  "357", "design-twitter":  "355", "russian-doll-envelopes":  "354", "data-stream-as-disjoint-intervals":  "352", "intersection-of-two-arrays-ii":  "350", "intersection-of-two-arrays":  "349", "top-k-frequent-elements":  "347", "reverse-vowels-of-a-string":  "345", "reverse-string":  "344", "integer-break":  "343", "power-of-four":  "342", "flatten-nested-list-iterator":  "341", "counting-bits":  "338", "house-robber-iii":  "337", "palindrome-pairs":  "336", "self-crossing":  "335", "increasing-triplet-subsequence":  "334", "reconstruct-itinerary":  "332", "verify-preorder-serialization-of-a-binary-tree":  "331", "patching-array":  "330", "longest-increasing-path-in-a-matrix":  "329", "odd-even-linked-list":  "328", "count-of-range-sum":  "327", "power-of-three":  "326", "wiggle-sort-ii":  "324", "coin-change":  "322", "create-maximum-number":  "321", "bulb-switcher":  "319", "maximum-product-of-word-lengths":  "318", "remove-duplicate-letters":  "316", "count-of-smaller-numbers-after-self":  "315", "super-ugly-number":  "313", "burst-balloons":  "312", "minimum-height-trees":  "310", "best-time-to-buy-and-sell-stock-with-cooldown":  "309", "range-sum-query-mutable":  "307", "additive-number":  "306", "range-sum-query-2d-immutable":  "304", "range-sum-query-immutable":  "303", "remove-invalid-parentheses":  "301", "longest-increasing-subsequence":  "300", "bulls-and-cows":  "299", "serialize-and-deserialize-binary-tree":  "297", "find-median-from-data-stream":  "295", "nim-game":  "292", "word-pattern":  "290", "game-of-life":  "289", "find-the-duplicate-number":  "287", "peeking-iterator":  "284", "move-zeroes":  "283", "expression-add-operators":  "282", "perfect-squares":  "279", "first-bad-version":  "278", "h-index-ii":  "275", "h-index":  "274", "integer-to-english-words":  "273", "missing-number":  "268", "ugly-number-ii":  "264", "ugly-number":  "263", "trips-and-users":  "262", "single-number-iii":  "260", "add-digits":  "258", "binary-tree-paths":  "257", "valid-anagram":  "242", "different-ways-to-add-parentheses":  "241", "search-a-2d-matrix-ii":  "240", "sliding-window-maximum":  "239", "product-of-array-except-self":  "238", "delete-node-in-a-linked-list":  "237", "lowest-common-ancestor-of-a-binary-tree":  "236", "lowest-common-ancestor-of-a-binary-search-tree":  "235", "palindrome-linked-list":  "234", "number-of-digit-one":  "233", "implement-queue-using-stacks":  "232", "power-of-two":  "231", "kth-smallest-element-in-a-bst":  "230", "majority-element-ii":  "229", "summary-ranges":  "228", "basic-calculator-ii":  "227", "invert-binary-tree":  "226", "implement-stack-using-queues":  "225", "basic-calculator":  "224", "rectangle-area":  "223", "count-complete-tree-nodes":  "222", "maximal-square":  "221", "contains-duplicate-iii":  "220", "contains-duplicate-ii":  "219", "the-skyline-problem":  "218", "contains-duplicate":  "217", "combination-sum-iii":  "216", "kth-largest-element-in-an-array":  "215", "shortest-palindrome":  "214", "house-robber-ii":  "213", "word-search-ii":  "212", "add-and-search-word-data-structure-design":  "211", "course-schedule-ii":  "210", "minimum-size-subarray-sum":  "209", "implement-trie-prefix-tree":  "208", "course-schedule":  "207", "reverse-linked-list":  "206", "isomorphic-strings":  "205", "count-primes":  "204", "remove-linked-list-elements":  "203", "happy-number":  "202", "bitwise-and-of-numbers-range":  "201", "number-of-islands":  "200", "binary-tree-right-side-view":  "199", "house-robber":  "198", "rising-temperature":  "197", "delete-duplicate-emails":  "196", "tenth-line":  "195", "transpose-file":  "194", "valid-phone-numbers":  "193", "word-frequency":  "192", "number-of-1-bits":  "191", "reverse-bits":  "190", "rotate-array":  "189", "best-time-to-buy-and-sell-stock-iv":  "188", "repeated-dna-sequences":  "187", "department-top-three-salaries":  "185", "department-highest-salary":  "184", "customers-who-never-order":  "183", "duplicate-emails":  "182", "employees-earning-more-than-their-managers":  "181", "consecutive-numbers":  "180", "largest-number":  "179", "rank-scores":  "178", "nth-highest-salary":  "177", "second-highest-salary":  "176", "combine-two-tables":  "175", "dungeon-game":  "174", "binary-search-tree-iterator":  "173", "factorial-trailing-zeroes":  "172", "excel-sheet-column-number":  "171", "majority-element":  "169", "excel-sheet-column-title":  "168", "two-sum-ii-input-array-is-sorted":  "167", "fraction-to-recurring-decimal":  "166", "compare-version-numbers":  "165", "maximum-gap":  "164", "find-peak-element":  "162", "intersection-of-two-linked-lists":  "160", "min-stack":  "155", "find-minimum-in-rotated-sorted-array-ii":  "154", "find-minimum-in-rotated-sorted-array":  "153", "maximum-product-subarray":  "152", "reverse-words-in-a-string":  "151", "evaluate-reverse-polish-notation":  "150", "max-points-on-a-line":  "149", "sort-list":  "148", "insertion-sort-list":  "147", "lru-cache":  "146", "binary-tree-postorder-traversal":  "145", "binary-tree-preorder-traversal":  "144", "reorder-list":  "143", "linked-list-cycle-ii":  "142", "linked-list-cycle":  "141", "word-break-ii":  "140", "word-break":  "139", "copy-list-with-random-pointer":  "138", "single-number-ii":  "137", "single-number":  "136", "candy":  "135", "gas-station":  "134", "clone-graph":  "133", "palindrome-partitioning-ii":  "132", "palindrome-partitioning":  "131", "surrounded-regions":  "130", "sum-root-to-leaf-numbers":  "129", "longest-consecutive-sequence":  "128", "word-ladder":  "127", "word-ladder-ii":  "126", "valid-palindrome":  "125", "binary-tree-maximum-path-sum":  "124", "best-time-to-buy-and-sell-stock-iii":  "123", "best-time-to-buy-and-sell-stock-ii":  "122", "best-time-to-buy-and-sell-stock":  "121", "triangle":  "120", "pascals-triangle-ii":  "119", "pascals-triangle":  "118", "populating-next-right-pointers-in-each-node-ii":  "117", "populating-next-right-pointers-in-each-node":  "116", "distinct-subsequences":  "115", "flatten-binary-tree-to-linked-list":  "114", "path-sum-ii":  "113", "path-sum":  "112", "minimum-depth-of-binary-tree":  "111", "balanced-binary-tree":  "110", "convert-sorted-list-to-binary-search-tree":  "109", "convert-sorted-array-to-binary-search-tree":  "108", "binary-tree-level-order-traversal-ii":  "107", "construct-binary-tree-from-inorder-and-postorder-traversal":  "106", "construct-binary-tree-from-preorder-and-inorder-traversal":  "105", "maximum-depth-of-binary-tree":  "104", "binary-tree-zigzag-level-order-traversal":  "103", "binary-tree-level-order-traversal":  "102", "symmetric-tree":  "101", "same-tree":  "100", "recover-binary-search-tree":  "99", "validate-binary-search-tree":  "98", "interleaving-string":  "97", "unique-binary-search-trees":  "96", "unique-binary-search-trees-ii":  "95", "binary-tree-inorder-traversal":  "94", "restore-ip-addresses":  "93", "reverse-linked-list-ii":  "92", "decode-ways":  "91", "subsets-ii":  "90", "gray-code":  "89", "merge-sorted-array":  "88", "scramble-string":  "87", "partition-list":  "86", "maximal-rectangle":  "85", "largest-rectangle-in-histogram":  "84", "remove-duplicates-from-sorted-list":  "83", "remove-duplicates-from-sorted-list-ii":  "82", "search-in-rotated-sorted-array-ii":  "81", "remove-duplicates-from-sorted-array-ii":  "80", "word-search":  "79", "subsets":  "78", "combinations":  "77", "minimum-window-substring":  "76", "sort-colors":  "75", "search-a-2d-matrix":  "74", "set-matrix-zeroes":  "73", "edit-distance":  "72", "simplify-path":  "71", "climbing-stairs":  "70", "sqrtx":  "69", "text-justification":  "68", "add-binary":  "67", "plus-one":  "66", "valid-number":  "65", "minimum-path-sum":  "64", "unique-paths-ii":  "63", "unique-paths":  "62", "rotate-list":  "61", "permutation-sequence":  "60", "spiral-matrix-ii":  "59", "length-of-last-word":  "58", "insert-interval":  "57", "merge-intervals":  "56", "jump-game":  "55", "spiral-matrix":  "54", "maximum-subarray":  "53", "n-queens-ii":  "52", "n-queens":  "51", "powx-n":  "50", "group-anagrams":  "49", "rotate-image":  "48", "permutations-ii":  "47", "permutations":  "46", "jump-game-ii":  "45", "wildcard-matching":  "44", "multiply-strings":  "43", "trapping-rain-water":  "42", "first-missing-positive":  "41", "combination-sum-ii":  "40", "combination-sum":  "39", "count-and-say":  "38", "sudoku-solver":  "37", "valid-sudoku":  "36", "search-insert-position":  "35", "find-first-and-last-position-of-element-in-sorted-array":  "34", "search-in-rotated-sorted-array":  "33", "longest-valid-parentheses":  "32", "next-permutation":  "31", "substring-with-concatenation-of-all-words":  "30", "divide-two-integers":  "29", "implement-strstr":  "28", "remove-element":  "27", "remove-duplicates-from-sorted-array":  "26", "reverse-nodes-in-k-group":  "25", "swap-nodes-in-pairs":  "24", "merge-k-sorted-lists":  "23", "generate-parentheses":  "22", "merge-two-sorted-lists":  "21", "valid-parentheses":  "20", "remove-nth-node-from-end-of-list":  "19", "4sum":  "18", "letter-combinations-of-a-phone-number":  "17", "3sum-closest":  "16", "3sum":  "15", "longest-common-prefix":  "14", "roman-to-integer":  "13", "integer-to-roman":  "12", "container-with-most-water":  "11", "regular-expression-matching":  "10", "palindrome-number":  "9", "string-to-integer-atoi":  "8", "reverse-integer":  "7", "zigzag-conversion":  "6", "longest-palindromic-substring":  "5", "median-of-two-sorted-arrays":  "4", "longest-substring-without-repeating-characters":  "3", "add-two-numbers":  "2", "two-sum":  "1"}
            if (problemName in leetcodeName2Id) {
                id = leetcodeName2Id[problemName];
                for(var len = (id + "").length; len < 3; len = id.length) {
                    id = "0" + id;
                }
                pythonUrl = pythonUrl.replace(/@/g, id+"."+problemName);
                window.open(pythonUrl, "_blank");
            } else {
                console.log('Sorry, I can not find it! Try to search it.');
            }
	    });

        //利用谷歌搜索题目名称
	    $("body").on("click","#search_with_google",function(){
            var searchName = problemName.replace(/-/g, encodeURIComponent(' '));
            var searchUrl = "https://www.google.com/search?q=";
            searchUrl = searchUrl+searchName+encodeURIComponent(" leetcode");
	    	window.open(searchUrl, "_blank");
	    });

        //切换语言,英语到汉语或汉语到英语
	    $("body").on("click","#change_language",function(){
            var changedUrl;
	    	if(isGlobal){
                changedUrl = "https://leetcode-cn.com/problems/"+problemName;
            } else {
                changedUrl = "https://leetcode.com/problems/"+problemName;
            }
            window.open(changedUrl, "_blank");
	    });
   	};

    leetcodeHelper.init=function(){
    	leetcodeHelper.addHtml();
    }
    leetcodeHelper.init();

})();