From 36140e30ca795963deb90ce1f97debf895f52646 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Tue, 28 Dec 2021 13:57:10 +0000 Subject: - Added guest contributions by Eric Cheung. --- .../eric-cheung/excel-vba/Challenge_145.xlsm | Bin 0 -> 26797 bytes challenge-145/eric-cheung/excel-vba/ch-1.bas | 31 + challenge-145/eric-cheung/python/ch-2.py | 148 ++++ stats/pwc-current.json | 128 +-- stats/pwc-language-breakdown-summary.json | 68 +- stats/pwc-language-breakdown.json | 956 ++++++++++----------- stats/pwc-leaders.json | 732 ++++++++-------- stats/pwc-summary-1-30.json | 100 +-- stats/pwc-summary-121-150.json | 110 +-- stats/pwc-summary-151-180.json | 112 +-- stats/pwc-summary-181-210.json | 34 +- stats/pwc-summary-211-240.json | 30 +- stats/pwc-summary-241-270.json | 24 +- stats/pwc-summary-31-60.json | 106 +-- stats/pwc-summary-61-90.json | 36 +- stats/pwc-summary-91-120.json | 116 +-- stats/pwc-summary.json | 38 +- 17 files changed, 1474 insertions(+), 1295 deletions(-) create mode 100755 challenge-145/eric-cheung/excel-vba/Challenge_145.xlsm create mode 100755 challenge-145/eric-cheung/excel-vba/ch-1.bas create mode 100755 challenge-145/eric-cheung/python/ch-2.py diff --git a/challenge-145/eric-cheung/excel-vba/Challenge_145.xlsm b/challenge-145/eric-cheung/excel-vba/Challenge_145.xlsm new file mode 100755 index 0000000000..67327b18b0 Binary files /dev/null and b/challenge-145/eric-cheung/excel-vba/Challenge_145.xlsm differ diff --git a/challenge-145/eric-cheung/excel-vba/ch-1.bas b/challenge-145/eric-cheung/excel-vba/ch-1.bas new file mode 100755 index 0000000000..c29c9b6a07 --- /dev/null +++ b/challenge-145/eric-cheung/excel-vba/ch-1.bas @@ -0,0 +1,31 @@ +Attribute VB_Name = "ModTask_01" +Option Explicit + +Public Const strMyTitle As String = "Eric Cheung" + +Sub Task_01() +'' Dot Product + + Dim strMsg As String + + Dim dArr_A() As Variant, dArr_B() As Variant + Dim nLoop As Integer + Dim dSum As Double + + dArr_A = Array(1, 2, 3) + dArr_B = Array(4, 5, 6) + + If UBound(dArr_A) - LBound(dArr_A) <> UBound(dArr_B) - LBound(dArr_B) Then + strMsg = "Inconsistent Array Size" + Exit Sub + End If + + For nLoop = LBound(dArr_A) To UBound(dArr_A) + dSum = dSum + dArr_A(nLoop) * dArr_B(nLoop) + Next nLoop + + MsgBox dSum, vbOKOnly, strMyTitle + +End Sub + + diff --git a/challenge-145/eric-cheung/python/ch-2.py b/challenge-145/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..5d4276b2e6 --- /dev/null +++ b/challenge-145/eric-cheung/python/ch-2.py @@ -0,0 +1,148 @@ +import logging + +## Credit: +## https://gist.github.com/shubham2508/9188707973e9a758c0edefe577c0da20 + +## Remarks: +## https://stackoverflow.com/questions/2802726/putting-a-simple-if-then-else-statement-on-one-line +## https://en.wikipedia.org/wiki/%3F:#Python + +## Links Used: +## http://adilet.org/blog/palindromic-tree/ +## https://medium.com/@alessiopiergiacomi/eertree-or-palindromic-tree-82453e75025b +## It solves the problem in O(n) + +class PalindromicNode: + def __init__(self, start = 0, end = 0): + self.start = start + self.end = end + self.len = end - start + 1 + self.insertionEdge = [0] * 26 + self.suffixLink = None + + ## Optional Attribute + self.count = 1 ## Stores number of times this palindrome was repeated + self.num_of_suffix_links = 1 ## stores number of suffix link till imaginary node + + def increment_count(self): + self.count = self.count + 1 + +class PalindromicTree: + def __init__(self, value): + self.emptyNode = PalindromicNode() + self.imaginaryNode = PalindromicNode() + self.tree = [] + self.string = value + self.total_palindromes = 0 + self.distinct_palindromes = 0 + self.emptyNode.suffixLink = self.imaginaryNode + self.imaginaryNode.suffixLink = self.imaginaryNode + self.imaginaryNode.len = -1 + self.emptyNode.len = 0 + + self.current_suffix = self.imaginaryNode + + def insert_letter(self, curr_ind, character): + chr_index = ord(character) - 97 + new_node = None + curr_suffix = self.current_suffix + + if curr_suffix.len > 0: + logging.debug(f'\n curr_suffix is : {self.string[curr_suffix.start:curr_suffix.end + 1]}') + + while curr_suffix: + curr_start = curr_ind if curr_suffix.len == -1 else curr_ind - curr_suffix.len - 1 + + if curr_start >= 0 and self.string[curr_start] == character: + if not curr_suffix.insertionEdge[chr_index]: + new_node = PalindromicNode(start = curr_start, end = curr_ind) + logging.info(f' new_node starts from: {new_node.start} ends at: {new_node.end}') + curr_suffix.insertionEdge[chr_index] = new_node + self.distinct_palindromes = self.distinct_palindromes + 1 + + break + else: + new_node = curr_suffix.insertionEdge[chr_index] + self.total_palindromes = self.total_palindromes + new_node.num_of_suffix_links + new_node.increment_count() + self.current_suffix = new_node + logging.info(f' new_node is already present: {self.string[new_node.start:new_node.end + 1]}') + logging.debug(f' Palindromes til now: {self.total_palindromes}') + + return + + curr_suffix = curr_suffix.suffixLink + + self.tree.append(new_node) + self.current_suffix = new_node + + if new_node.start == new_node.end: + new_node.suffixLink = self.emptyNode + self.total_palindromes += new_node.num_of_suffix_links + logging.debug(f' Palindromes til now: {self.total_palindromes}') + return + + curr_suffix = curr_suffix.suffixLink + + while True: + curr_start = curr_ind if curr_suffix.len == -1 else curr_ind - curr_suffix.len - 1 + + if curr_start >= 0 and self.string[curr_start] == character: + new_node.suffixLink = curr_suffix.insertionEdge[chr_index] + new_node.num_of_suffix_links = new_node.num_of_suffix_links + new_node.suffixLink.num_of_suffix_links + self.total_palindromes = self.total_palindromes + new_node.num_of_suffix_links + + logging.debug(f' new_node suffix link is : {self.string[new_node.suffixLink.start:new_node.suffixLink.end + 1]}') + + break + + curr_suffix = curr_suffix.suffixLink + + logging.debug(f' Palindromes til now: {self.total_palindromes}') + + def get_number_of_occurrence_of_sub_palindromes(self): + + total_len = len(self.tree) + + for j in range(total_len - 1, -1, -1): + self.tree[j].suffixLink.count = self.tree[j].suffixLink.count + self.tree[j].count + + total_palindromes = 0 + + for treeNode in self.tree: + start, end, count = treeNode.start, treeNode.end, treeNode.count + logging.critical(f' Palindrome is {self.string[start:end + 1]} number of times: {count} ') + total_palindromes += count + + logging.critical(f' Total number of palindromes: {total_palindromes} ') + + +if __name__ == "__main__": + + ## Example 1: + ## string = "redivider" + + ## Example 2: + ## string = "deific" + + ## Example 3: + ## string = "rotors" + + ## Example 4: + ## string = "challenge" + + ## Example 5: + ## string = "champion" + + ## Example 6: + string = "christmas" + + logging.basicConfig(level = logging.INFO) + palindromicTree = PalindromicTree(string) + for index, ch in enumerate(string): + palindromicTree.insert_letter(index, ch) + + logging.critical(f' Total number of palindromes: {palindromicTree.total_palindromes} ') + logging.critical(f' Total number of distinct palindromes: {palindromicTree.distinct_palindromes}') + + palindromicTree.get_number_of_occurrence_of_sub_palindromes() diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 2998234038..cbf95f0533 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,64 +1,60 @@ { - "title" : { - "text" : "The Weekly Challenge - 145" - }, - "legend" : { - "enabled" : 0 + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2021-12-28 13:55:46 GMT" }, "tooltip" : { + "followPointer" : 1, "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
", - "followPointer" : 1 + "headerFormat" : "{series.name}
" }, "series" : [ { - "name" : "The Weekly Challenge - 145", "colorByPoint" : 1, "data" : [ { - "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov", "y" : 1, - "name" : "Andrew Shitov" + "drilldown" : "Andrew Shitov" }, { "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 3 + "y" : 3, + "name" : "Dave Jacoby" }, { "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld", - "y" : 3 + "y" : 3, + "name" : "Laurent Rosenfeld" }, { - "name" : "Mark Anderson", + "drilldown" : "Mark Anderson", "y" : 1, - "drilldown" : "Mark Anderson" + "name" : "Mark Anderson" }, { - "name" : "Mohammad S Anwar", + "drilldown" : "Mohammad S Anwar", "y" : 1, - "drilldown" : "Mohammad S Anwar" + "name" : "Mohammad S Anwar" }, { + "drilldown" : "Olivier Delouya", "name" : "Olivier Delouya", - "y" : 1, - "drilldown" : "Olivier Delouya" + "y" : 1 }, { "drilldown" : "Paulo Custodio", - "y" : 2, - "name" : "Paulo Custodio" + "name" : "Paulo Custodio", + "y" : 2 }, { - "drilldown" : "Peter Campbell Smith", "y" : 3, - "name" : "Peter Campbell Smith" + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith" }, { + "drilldown" : "Robert DiCicco", "name" : "Robert DiCicco", - "y" : 2, - "drilldown" : "Robert DiCicco" + "y" : 2 }, { "y" : 5, @@ -70,37 +66,29 @@ "y" : 3, "drilldown" : "W. Luis Mochan" } - ] + ], + "name" : "The Weekly Challenge - 145" } ], - "subtitle" : { - "text" : "[Champions: 11] Last updated at 2021-12-28 13:42:53 GMT" + "title" : { + "text" : "The Weekly Challenge - 145" }, "chart" : { "type" : "column" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "xAxis" : { - "type" : "category" - }, "drilldown" : { "series" : [ { - "name" : "Andrew Shitov", - "id" : "Andrew Shitov", "data" : [ [ "Raku", 1 ] - ] + ], + "id" : "Andrew Shitov", + "name" : "Andrew Shitov" }, { - "id" : "Dave Jacoby", "name" : "Dave Jacoby", "data" : [ [ @@ -111,10 +99,10 @@ "Blog", 1 ] - ] + ], + "id" : "Dave Jacoby" }, { - "id" : "Laurent Rosenfeld", "name" : "Laurent Rosenfeld", "data" : [ [ @@ -129,37 +117,38 @@ "Blog", 1 ] - ] + ], + "id" : "Laurent Rosenfeld" }, { - "name" : "Mark Anderson", "id" : "Mark Anderson", "data" : [ [ "Raku", 1 ] - ] + ], + "name" : "Mark Anderson" }, { + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar", "data" : [ [ "Perl", 1 ] - ], - "id" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" + ] }, { - "name" : "Olivier Delouya", "id" : "Olivier Delouya", "data" : [ [ "Perl", 1 ] - ] + ], + "name" : "Olivier Delouya" }, { "data" : [ @@ -168,10 +157,11 @@ 2 ] ], - "name" : "Paulo Custodio", - "id" : "Paulo Custodio" + "id" : "Paulo Custodio", + "name" : "Paulo Custodio" }, { + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -182,20 +172,21 @@ 1 ] ], - "id" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" + "id" : "Peter Campbell Smith" }, { + "name" : "Robert DiCicco", + "id" : "Robert DiCicco", "data" : [ [ "Perl", 2 ] - ], - "id" : "Robert DiCicco", - "name" : "Robert DiCicco" + ] }, { + "name" : "Roger Bell_West", + "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -209,11 +200,10 @@ "Blog", 1 ] - ], - "name" : "Roger Bell_West", - "id" : "Roger Bell_West" + ] }, { + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -224,18 +214,28 @@ 1 ] ], - "name" : "W. Luis Mochan", "id" : "W. Luis Mochan" } ] }, + "legend" : { + "enabled" : 0 + }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - } + }, + "borderWidth" : 0 + } + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" } + }, + "xAxis" : { + "type" : "category" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0f7e3a6828..6cd224c505 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,20 +1,45 @@ { + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, "subtitle" : { - "text" : "Last updated at 2021-12-28 13:42:53 GMT" + "text" : "Last updated at 2021-12-28 13:55:46 GMT" }, "series" : [ { + "name" : "Contributions", "dataLabels" : { "color" : "#FFFFFF", - "rotation" : -90, - "format" : "{point.y:.0f}", - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, "enabled" : "true", "y" : 10, - "align" : "right" + "align" : "right", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "rotation" : -90, + "format" : "{point.y:.0f}" }, "data" : [ [ @@ -29,35 +54,10 @@ "Raku", 4194 ] - ], - "name" : "Contributions" + ] } ], - "legend" : { - "enabled" : "false" - }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2021]" - }, - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "chart" : { - "type" : "column" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 819d3b70ca..5fda562c7d 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,7 +1,32 @@ { + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "xAxis" : { + "type" : "category" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, "drilldown" : { "series" : [ { + "name" : "001", + "id" : "001", "data" : [ [ "Perl", @@ -15,11 +40,11 @@ "Blog", 11 ] - ], - "name" : "001", - "id" : "001" + ] }, { + "name" : "002", + "id" : "002", "data" : [ [ "Perl", @@ -33,12 +58,9 @@ "Blog", 10 ] - ], - "id" : "002", - "name" : "002" + ] }, { - "name" : "003", "id" : "003", "data" : [ [ @@ -53,7 +75,8 @@ "Blog", 9 ] - ] + ], + "name" : "003" }, { "name" : "004", @@ -74,7 +97,6 @@ ] }, { - "id" : "005", "name" : "005", "data" : [ [ @@ -89,10 +111,10 @@ "Blog", 12 ] - ] + ], + "id" : "005" }, { - "name" : "006", "id" : "006", "data" : [ [ @@ -107,10 +129,10 @@ "Blog", 7 ] - ] + ], + "name" : "006" }, { - "name" : "007", "id" : "007", "data" : [ [ @@ -125,7 +147,8 @@ "Blog", 10 ] - ] + ], + "name" : "007" }, { "data" : [ @@ -164,6 +187,8 @@ ] }, { + "name" : "010", + "id" : "010", "data" : [ [ "Perl", @@ -177,11 +202,11 @@ "Blog", 11 ] - ], - "name" : "010", - "id" : "010" + ] }, { + "name" : "011", + "id" : "011", "data" : [ [ "Perl", @@ -195,11 +220,10 @@ "Blog", 10 ] - ], - "name" : "011", - "id" : "011" + ] }, { + "id" : "012", "data" : [ [ "Perl", @@ -214,7 +238,6 @@ 11 ] ], - "id" : "012", "name" : "012" }, { @@ -254,8 +277,6 @@ "name" : "014" }, { - "name" : "015", - "id" : "015", "data" : [ [ "Perl", @@ -269,9 +290,12 @@ "Blog", 15 ] - ] + ], + "id" : "015", + "name" : "015" }, { + "name" : "016", "data" : [ [ "Perl", @@ -286,11 +310,9 @@ 12 ] ], - "id" : "016", - "name" : "016" + "id" : "016" }, { - "id" : "017", "name" : "017", "data" : [ [ @@ -305,9 +327,12 @@ "Blog", 12 ] - ] + ], + "id" : "017" }, { + "name" : "018", + "id" : "018", "data" : [ [ "Perl", @@ -321,13 +346,9 @@ "Blog", 14 ] - ], - "name" : "018", - "id" : "018" + ] }, { - "id" : "019", - "name" : "019", "data" : [ [ "Perl", @@ -341,7 +362,9 @@ "Blog", 13 ] - ] + ], + "id" : "019", + "name" : "019" }, { "name" : "020", @@ -363,7 +386,6 @@ }, { "name" : "021", - "id" : "021", "data" : [ [ "Perl", @@ -377,7 +399,8 @@ "Blog", 10 ] - ] + ], + "id" : "021" }, { "data" : [ @@ -430,8 +453,8 @@ 11 ] ], - "name" : "024", - "id" : "024" + "id" : "024", + "name" : "024" }, { "data" : [ @@ -448,11 +471,10 @@ 12 ] ], - "name" : "025", - "id" : "025" + "id" : "025", + "name" : "025" }, { - "id" : "026", "name" : "026", "data" : [ [ @@ -467,9 +489,12 @@ "Blog", 10 ] - ] + ], + "id" : "026" }, { + "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -483,11 +508,10 @@ "Blog", 9 ] - ], - "name" : "027", - "id" : "027" + ] }, { + "name" : "028", "data" : [ [ "Perl", @@ -502,10 +526,10 @@ 9 ] ], - "name" : "028", "id" : "028" }, { + "id" : "029", "data" : [ [ "Perl", @@ -520,12 +544,9 @@ 12 ] ], - "id" : "029", "name" : "029" }, { - "name" : "030", - "id" : "030", "data" : [ [ "Perl", @@ -539,9 +560,12 @@ "Blog", 10 ] - ] + ], + "id" : "030", + "name" : "030" }, { + "name" : "031", "data" : [ [ "Perl", @@ -556,10 +580,11 @@ 9 ] ], - "name" : "031", "id" : "031" }, { + "name" : "032", + "id" : "032", "data" : [ [ "Perl", @@ -573,13 +598,11 @@ "Blog", 10 ] - ], - "id" : "032", - "name" : "032" + ] }, { - "id" : "033", "name" : "033", + "id" : "033", "data" : [ [ "Perl", @@ -610,12 +633,10 @@ 11 ] ], - "name" : "034", - "id" : "034" + "id" : "034", + "name" : "034" }, { - "id" : "035", - "name" : "035", "data" : [ [ "Perl", @@ -629,7 +650,9 @@ "Blog", 9 ] - ] + ], + "id" : "035", + "name" : "035" }, { "data" : [ @@ -651,7 +674,6 @@ }, { "id" : "037", - "name" : "037", "data" : [ [ "Perl", @@ -665,9 +687,11 @@ "Blog", 9 ] - ] + ], + "name" : "037" }, { + "name" : "038", "data" : [ [ "Perl", @@ -682,7 +706,6 @@ 12 ] ], - "name" : "038", "id" : "038" }, { @@ -722,7 +745,6 @@ "name" : "040" }, { - "id" : "041", "name" : "041", "data" : [ [ @@ -737,11 +759,11 @@ "Blog", 9 ] - ] + ], + "id" : "041" }, { "name" : "042", - "id" : "042", "data" : [ [ "Perl", @@ -755,11 +777,10 @@ "Blog", 11 ] - ] + ], + "id" : "042" }, { - "name" : "043", - "id" : "043", "data" : [ [ "Perl", @@ -773,10 +794,11 @@ "Blog", 11 ] - ] + ], + "id" : "043", + "name" : "043" }, { - "id" : "044", "name" : "044", "data" : [ [ @@ -791,7 +813,8 @@ "Blog", 11 ] - ] + ], + "id" : "044" }, { "name" : "045", @@ -812,6 +835,8 @@ ] }, { + "name" : "046", + "id" : "046", "data" : [ [ "Perl", @@ -825,11 +850,10 @@ "Blog", 10 ] - ], - "name" : "046", - "id" : "046" + ] }, { + "name" : "047", "data" : [ [ "Perl", @@ -844,8 +868,7 @@ 10 ] ], - "id" : "047", - "name" : "047" + "id" : "047" }, { "name" : "048", @@ -866,6 +889,8 @@ ] }, { + "name" : "049", + "id" : "049", "data" : [ [ "Perl", @@ -879,13 +904,10 @@ "Blog", 12 ] - ], - "id" : "049", - "name" : "049" + ] }, { "id" : "050", - "name" : "050", "data" : [ [ "Perl", @@ -899,7 +921,8 @@ "Blog", 12 ] - ] + ], + "name" : "050" }, { "data" : [ @@ -916,8 +939,8 @@ 11 ] ], - "name" : "051", - "id" : "051" + "id" : "051", + "name" : "051" }, { "name" : "052", @@ -938,6 +961,7 @@ ] }, { + "id" : "053", "data" : [ [ "Perl", @@ -952,10 +976,10 @@ 15 ] ], - "name" : "053", - "id" : "053" + "name" : "053" }, { + "name" : "054", "data" : [ [ "Perl", @@ -970,7 +994,6 @@ 18 ] ], - "name" : "054", "id" : "054" }, { @@ -993,7 +1016,6 @@ }, { "name" : "056", - "id" : "056", "data" : [ [ "Perl", @@ -1007,11 +1029,11 @@ "Blog", 16 ] - ] + ], + "id" : "056" }, { "name" : "057", - "id" : "057", "data" : [ [ "Perl", @@ -1025,11 +1047,10 @@ "Blog", 15 ] - ] + ], + "id" : "057" }, { - "name" : "058", - "id" : "058", "data" : [ [ "Perl", @@ -1043,9 +1064,13 @@ "Blog", 13 ] - ] + ], + "id" : "058", + "name" : "058" }, { + "name" : "059", + "id" : "059", "data" : [ [ "Perl", @@ -1059,12 +1084,9 @@ "Blog", 16 ] - ], - "id" : "059", - "name" : "059" + ] }, { - "name" : "060", "id" : "060", "data" : [ [ @@ -1079,9 +1101,11 @@ "Blog", 16 ] - ] + ], + "name" : "060" }, { + "id" : "061", "data" : [ [ "Perl", @@ -1096,12 +1120,11 @@ 14 ] ], - "id" : "061", "name" : "061" }, { - "id" : "062", "name" : "062", + "id" : "062", "data" : [ [ "Perl", @@ -1118,7 +1141,6 @@ ] }, { - "name" : "063", "id" : "063", "data" : [ [ @@ -1133,11 +1155,11 @@ "Blog", 13 ] - ] + ], + "name" : "063" }, { "name" : "064", - "id" : "064", "data" : [ [ "Perl", @@ -1151,11 +1173,11 @@ "Blog", 16 ] - ] + ], + "id" : "064" }, { "name" : "065", - "id" : "065", "data" : [ [ "Perl", @@ -1169,9 +1191,11 @@ "Blog", 15 ] - ] + ], + "id" : "065" }, { + "name" : "066", "data" : [ [ "Perl", @@ -1186,11 +1210,9 @@ 14 ] ], - "name" : "066", "id" : "066" }, { - "id" : "067", "name" : "067", "data" : [ [ @@ -1205,9 +1227,12 @@ "Blog", 18 ] - ] + ], + "id" : "067" }, { + "name" : "068", + "id" : "068", "data" : [ [ "Perl", @@ -1221,13 +1246,11 @@ "Blog", 13 ] - ], - "name" : "068", - "id" : "068" + ] }, { - "id" : "069", "name" : "069", + "id" : "069", "data" : [ [ "Perl", @@ -1244,8 +1267,6 @@ ] }, { - "name" : "070", - "id" : "070", "data" : [ [ "Perl", @@ -1259,9 +1280,12 @@ "Blog", 17 ] - ] + ], + "id" : "070", + "name" : "070" }, { + "id" : "071", "data" : [ [ "Perl", @@ -1276,10 +1300,10 @@ 15 ] ], - "id" : "071", "name" : "071" }, { + "name" : "072", "data" : [ [ "Perl", @@ -1294,12 +1318,11 @@ 19 ] ], - "name" : "072", "id" : "072" }, { - "id" : "073", "name" : "073", + "id" : "073", "data" : [ [ "Perl", @@ -1317,7 +1340,6 @@ }, { "id" : "074", - "name" : "074", "data" : [ [ "Perl", @@ -1331,11 +1353,11 @@ "Blog", 20 ] - ] + ], + "name" : "074" }, { "id" : "075", - "name" : "075", "data" : [ [ "Perl", @@ -1349,9 +1371,12 @@ "Blog", 20 ] - ] + ], + "name" : "075" }, { + "name" : "076", + "id" : "076", "data" : [ [ "Perl", @@ -1365,9 +1390,7 @@ "Blog", 16 ] - ], - "name" : "076", - "id" : "076" + ] }, { "name" : "077", @@ -1388,8 +1411,8 @@ ] }, { - "id" : "078", "name" : "078", + "id" : "078", "data" : [ [ "Perl", @@ -1407,7 +1430,6 @@ }, { "name" : "079", - "id" : "079", "data" : [ [ "Perl", @@ -1421,10 +1443,10 @@ "Blog", 17 ] - ] + ], + "id" : "079" }, { - "name" : "080", "id" : "080", "data" : [ [ @@ -1439,11 +1461,11 @@ "Blog", 16 ] - ] + ], + "name" : "080" }, { "id" : "081", - "name" : "081", "data" : [ [ "Perl", @@ -1457,7 +1479,8 @@ "Blog", 15 ] - ] + ], + "name" : "081" }, { "data" : [ @@ -1474,12 +1497,11 @@ 17 ] ], - "name" : "082", - "id" : "082" + "id" : "082", + "name" : "082" }, { "name" : "083", - "id" : "083", "data" : [ [ "Perl", @@ -1493,7 +1515,8 @@ "Blog", 16 ] - ] + ], + "id" : "083" }, { "name" : "084", @@ -1514,6 +1537,7 @@ ] }, { + "id" : "085", "data" : [ [ "Perl", @@ -1528,12 +1552,11 @@ 18 ] ], - "id" : "085", "name" : "085" }, { - "id" : "086", "name" : "086", + "id" : "086", "data" : [ [ "Perl", @@ -1550,6 +1573,7 @@ ] }, { + "name" : "087", "data" : [ [ "Perl", @@ -1564,12 +1588,9 @@ 14 ] ], - "name" : "087", "id" : "087" }, { - "id" : "088", - "name" : "088", "data" : [ [ "Perl", @@ -1583,9 +1604,12 @@ "Blog", 20 ] - ] + ], + "id" : "088", + "name" : "088" }, { + "id" : "089", "data" : [ [ "Perl", @@ -1600,10 +1624,10 @@ 20 ] ], - "id" : "089", "name" : "089" }, { + "id" : "090", "data" : [ [ "Perl", @@ -1618,10 +1642,10 @@ 17 ] ], - "id" : "090", "name" : "090" }, { + "name" : "091", "data" : [ [ "Perl", @@ -1636,12 +1660,9 @@ 16 ] ], - "id" : "091", - "name" : "091" + "id" : "091" }, { - "name" : "092", - "id" : "092", "data" : [ [ "Perl", @@ -1655,10 +1676,11 @@ "Blog", 16 ] - ] + ], + "id" : "092", + "name" : "092" }, { - "id" : "093", "name" : "093", "data" : [ [ @@ -1673,10 +1695,10 @@ "Blog", 16 ] - ] + ], + "id" : "093" }, { - "name" : "094", "id" : "094", "data" : [ [ @@ -1691,10 +1713,10 @@ "Blog", 17 ] - ] + ], + "name" : "094" }, { - "id" : "095", "name" : "095", "data" : [ [ @@ -1709,7 +1731,8 @@ "Blog", 19 ] - ] + ], + "id" : "095" }, { "data" : [ @@ -1726,12 +1749,10 @@ 19 ] ], - "name" : "096", - "id" : "096" + "id" : "096", + "name" : "096" }, { - "id" : "097", - "name" : "097", "data" : [ [ "Perl", @@ -1745,9 +1766,13 @@ "Blog", 19 ] - ] + ], + "id" : "097", + "name" : "097" }, { + "name" : "098", + "id" : "098", "data" : [ [ "Perl", @@ -1761,11 +1786,10 @@ "Blog", 17 ] - ], - "id" : "098", - "name" : "098" + ] }, { + "name" : "099", "data" : [ [ "Perl", @@ -1780,10 +1804,10 @@ 14 ] ], - "name" : "099", "id" : "099" }, { + "id" : "100", "data" : [ [ "Perl", @@ -1798,7 +1822,6 @@ 21 ] ], - "id" : "100", "name" : "100" }, { @@ -1820,8 +1843,6 @@ "name" : "101" }, { - "id" : "102", - "name" : "102", "data" : [ [ "Perl", @@ -1835,9 +1856,12 @@ "Blog", 15 ] - ] + ], + "id" : "102", + "name" : "102" }, { + "name" : "103", "data" : [ [ "Perl", @@ -1852,10 +1876,10 @@ 15 ] ], - "name" : "103", "id" : "103" }, { + "id" : "104", "data" : [ [ "Perl", @@ -1870,7 +1894,6 @@ 14 ] ], - "id" : "104", "name" : "104" }, { @@ -1892,8 +1915,6 @@ "name" : "105" }, { - "name" : "106", - "id" : "106", "data" : [ [ "Perl", @@ -1907,7 +1928,9 @@ "Blog", 17 ] - ] + ], + "id" : "106", + "name" : "106" }, { "data" : [ @@ -1924,11 +1947,10 @@ 19 ] ], - "name" : "107", - "id" : "107" + "id" : "107", + "name" : "107" }, { - "name" : "108", "id" : "108", "data" : [ [ @@ -1943,11 +1965,12 @@ "Blog", 20 ] - ] + ], + "name" : "108" }, { - "id" : "109", "name" : "109", + "id" : "109", "data" : [ [ "Perl", @@ -1964,8 +1987,8 @@ ] }, { - "id" : "110", "name" : "110", + "id" : "110", "data" : [ [ "Perl", @@ -1982,6 +2005,8 @@ ] }, { + "name" : "111", + "id" : "111", "data" : [ [ "Perl", @@ -1995,12 +2020,9 @@ "Blog", 17 ] - ], - "name" : "111", - "id" : "111" + ] }, { - "id" : "112", "name" : "112", "data" : [ [ @@ -2015,11 +2037,10 @@ "Blog", 19 ] - ] + ], + "id" : "112" }, { - "id" : "113", - "name" : "113", "data" : [ [ "Perl", @@ -2033,11 +2054,11 @@ "Blog", 19 ] - ] + ], + "id" : "113", + "name" : "113" }, { - "name" : "114", - "id" : "114", "data" : [ [ "Perl", @@ -2051,7 +2072,9 @@ "Blog", 21 ] - ] + ], + "id" : "114", + "name" : "114" }, { "data" : [ @@ -2068,12 +2091,11 @@ 20 ] ], - "name" : "115", - "id" : "115" + "id" : "115", + "name" : "115" }, { "id" : "116", - "name" : "116", "data" : [ [ "Perl", @@ -2087,7 +2109,8 @@ "Blog", 17 ] - ] + ], + "name" : "116" }, { "data" : [ @@ -2109,7 +2132,6 @@ }, { "id" : "118", - "name" : "118", "data" : [ [ "Perl", @@ -2123,7 +2145,8 @@ "Blog", 17 ] - ] + ], + "name" : "118" }, { "data" : [ @@ -2140,12 +2163,10 @@ 21 ] ], - "name" : "119", - "id" : "119" + "id" : "119", + "name" : "119" }, { - "id" : "120", - "name" : "120", "data" : [ [ "Perl", @@ -2159,10 +2180,11 @@ "Blog", 21 ] - ] + ], + "id" : "120", + "name" : "120" }, { - "name" : "121", "id" : "121", "data" : [ [ @@ -2177,9 +2199,11 @@ "Blog", 17 ] - ] + ], + "name" : "121" }, { + "name" : "122", "data" : [ [ "Perl", @@ -2194,11 +2218,9 @@ 20 ] ], - "id" : "122", - "name" : "122" + "id" : "122" }, { - "id" : "123", "name" : "123", "data" : [ [ @@ -2213,9 +2235,11 @@ "Blog", 18 ] - ] + ], + "id" : "123" }, { + "name" : "124", "data" : [ [ "Perl", @@ -2230,12 +2254,9 @@ 16 ] ], - "name" : "124", "id" : "124" }, { - "id" : "125", - "name" : "125", "data" : [ [ "Perl", @@ -2249,9 +2270,13 @@ "Blog", 11 ] - ] + ], + "id" : "125", + "name" : "125" }, { + "name" : "126", + "id" : "126", "data" : [ [ "Perl", @@ -2265,11 +2290,10 @@ "Blog", 19 ] - ], - "id" : "126", - "name" : "126" + ] }, { + "id" : "127", "data" : [ [ "Perl", @@ -2284,10 +2308,11 @@ 18 ] ], - "id" : "127", "name" : "127" }, { + "name" : "128", + "id" : "128", "data" : [ [ "Perl", @@ -2301,9 +2326,7 @@ "Blog", 15 ] - ], - "id" : "128", - "name" : "128" + ] }, { "data" : [ @@ -2320,12 +2343,11 @@ 14 ] ], - "name" : "129", - "id" : "129" + "id" : "129", + "name" : "129" }, { "name" : "130", - "id" : "130", "data" : [ [ "Perl", @@ -2339,9 +2361,12 @@ "Blog", 13 ] - ] + ], + "id" : "130" }, { + "name" : "131", + "id" : "131", "data" : [ [ "Perl", @@ -2355,13 +2380,11 @@ "Blog", 17 ] - ], - "name" : "131", - "id" : "131" + ] }, { - "id" : "132", "name" : "132", + "id" : "132", "data" : [ [ "Perl", @@ -2378,6 +2401,7 @@ ] }, { + "name" : "133", "data" : [ [ "Perl", @@ -2392,10 +2416,11 @@ 18 ] ], - "name" : "133", "id" : "133" }, { + "name" : "134", + "id" : "134", "data" : [ [ "Perl", @@ -2409,9 +2434,7 @@ "Blog", 15 ] - ], - "name" : "134", - "id" : "134" + ] }, { "data" : [ @@ -2428,10 +2451,11 @@ 17 ] ], - "name" : "135", - "id" : "135" + "id" : "135", + "name" : "135" }, { + "id" : "136", "data" : [ [ "Perl", @@ -2446,10 +2470,11 @@ 19 ] ], - "id" : "136", "name" : "136" }, { + "name" : "137", + "id" : "137", "data" : [ [ "Perl", @@ -2463,9 +2488,7 @@ "Blog", 16 ] - ], - "id" : "137", - "name" : "137" + ] }, { "data" : [ @@ -2482,10 +2505,12 @@ 19 ] ], - "name" : "138", - "id" : "138" + "id" : "138", + "name" : "138" }, { + "name" : "139", + "id" : "139", "data" : [ [ "Perl", @@ -2499,13 +2524,10 @@ "Blog", 19 ] - ], - "id" : "139", - "name" : "139" + ] }, { "name" : "140", - "id" : "140", "data" : [ [ "Perl", @@ -2519,11 +2541,11 @@ "Blog", 19 ] - ] + ], + "id" : "140" }, { "name" : "141", - "id" : "141", "data" : [ [ "Perl", @@ -2537,9 +2559,11 @@ "Blog", 19 ] - ] + ], + "id" : "141" }, { + "id" : "142", "data" : [ [ "Perl", @@ -2554,8 +2578,7 @@ 18 ] ], - "name" : "142", - "id" : "142" + "name" : "142" }, { "data" : [ @@ -2572,8 +2595,8 @@ 17 ] ], - "name" : "143", - "id" : "143" + "id" : "143", + "name" : "143" }, { "name" : "144", @@ -2608,44 +2631,18 @@ 5 ] ], - "name" : "145", - "id" : "145" + "id" : "145", + "name" : "145" } ] }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-12-28 13:42:53 GMT" - }, - "title" : { - "text" : "The Weekly Challenge Language" - }, - "legend" : { - "enabled" : "false" - }, "tooltip" : { "headerFormat" : "", - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "followPointer" : "true" + "followPointer" : "true", + "pointFormat" : "Challenge {point.name}: {point.y:f}
" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-12-28 13:55:46 GMT" }, "series" : [ { @@ -2653,9 +2650,9 @@ "colorByPoint" : "true", "data" : [ { - "drilldown" : "001", "y" : 161, - "name" : "#001" + "name" : "#001", + "drilldown" : "001" }, { "y" : 125, @@ -2664,18 +2661,18 @@ }, { "drilldown" : "003", - "name" : "#003", - "y" : 83 + "y" : 83, + "name" : "#003" }, { - "drilldown" : "004", "y" : 99, - "name" : "#004" + "name" : "#004", + "drilldown" : "004" }, { - "drilldown" : "005", + "y" : 78, "name" : "#005", - "y" : 78 + "drilldown" : "005" }, { "name" : "#006", @@ -2683,18 +2680,18 @@ "drilldown" : "006" }, { - "name" : "#007", + "drilldown" : "007", "y" : 64, - "drilldown" : "007" + "name" : "#007" }, { - "y" : 78, + "drilldown" : "008", "name" : "#008", - "drilldown" : "008" + "y" : 78 }, { - "name" : "#009", "y" : 76, + "name" : "#009", "drilldown" : "009" }, { @@ -2703,39 +2700,39 @@ "drilldown" : "010" }, { - "y" : 85, "name" : "#011", + "y" : 85, "drilldown" : "011" }, { "drilldown" : "012", - "name" : "#012", - "y" : 89 + "y" : 89, + "name" : "#012" }, { + "drilldown" : "013", "y" : 85, - "name" : "#013", - "drilldown" : "013" + "name" : "#013" }, { - "name" : "#014", + "drilldown" : "014", "y" : 101, - "drilldown" : "014" + "name" : "#014" }, { - "y" : 99, "name" : "#015", + "y" : 99, "drilldown" : "015" }, { + "drilldown" : "016", "name" : "#016", - "y" : 71, - "drilldown" : "016" + "y" : 71 }, { - "name" : "#017", + "drilldown" : "017", "y" : 84, - "drilldown" : "017" + "name" : "#017" }, { "drilldown" : "018", @@ -2748,9 +2745,9 @@ "name" : "#019" }, { - "name" : "#020", + "drilldown" : "020", "y" : 101, - "drilldown" : "020" + "name" : "#020" }, { "drilldown" : "021", @@ -2763,24 +2760,24 @@ "drilldown" : "022" }, { - "y" : 97, "name" : "#023", + "y" : 97, "drilldown" : "023" }, { - "y" : 75, "name" : "#024", + "y" : 75, "drilldown" : "024" }, { - "drilldown" : "025", "name" : "#025", - "y" : 59 + "y" : 59, + "drilldown" : "025" }, { + "drilldown" : "026", "name" : "#026", - "y" : 74, - "drilldown" : "026" + "y" : 74 }, { "drilldown" : "027", @@ -2788,14 +2785,14 @@ "y" : 62 }, { - "y" : 82, + "drilldown" : "028", "name" : "#028", - "drilldown" : "028" + "y" : 82 }, { + "drilldown" : "029", "name" : "#029", - "y" : 81, - "drilldown" : "029" + "y" : 81 }, { "y" : 119, @@ -2803,44 +2800,44 @@ "drilldown" : "030" }, { - "y" : 91, + "drilldown" : "031", "name" : "#031", - "drilldown" : "031" + "y" : 91 }, { + "drilldown" : "032", "name" : "#032", - "y" : 96, - "drilldown" : "032" + "y" : 96 }, { - "y" : 112, + "drilldown" : "033", "name" : "#033", - "drilldown" : "033" + "y" : 112 }, { - "drilldown" : "034", + "y" : 66, "name" : "#034", - "y" : 66 + "drilldown" : "034" }, { - "drilldown" : "035", + "y" : 66, "name" : "#035", - "y" : 66 + "drilldown" : "035" }, { - "drilldown" : "036", + "y" : 68, "name" : "#036", - "y" : 68 + "drilldown" : "036" }, { - "y" : 67, + "drilldown" : "037", "name" : "#037", - "drilldown" : "037" + "y" : 67 }, { - "drilldown" : "038", "y" : 68, - "name" : "#038" + "name" : "#038", + "drilldown" : "038" }, { "name" : "#039", @@ -2849,13 +2846,13 @@ }, { "drilldown" : "040", - "y" : 73, - "name" : "#040" + "name" : "#040", + "y" : 73 }, { "drilldown" : "041", - "name" : "#041", - "y" : 76 + "y" : 76, + "name" : "#041" }, { "drilldown" : "042", @@ -2868,14 +2865,14 @@ "y" : 68 }, { + "drilldown" : "044", "name" : "#044", - "y" : 85, - "drilldown" : "044" + "y" : 85 }, { "drilldown" : "045", - "name" : "#045", - "y" : 96 + "y" : 96, + "name" : "#045" }, { "drilldown" : "046", @@ -2883,23 +2880,23 @@ "y" : 87 }, { - "y" : 84, "name" : "#047", + "y" : 84, "drilldown" : "047" }, { - "name" : "#048", + "drilldown" : "048", "y" : 108, - "drilldown" : "048" + "name" : "#048" }, { - "y" : 89, "name" : "#049", + "y" : 89, "drilldown" : "049" }, { - "y" : 98, "name" : "#050", + "y" : 98, "drilldown" : "050" }, { @@ -2909,73 +2906,73 @@ }, { "drilldown" : "052", - "y" : 91, - "name" : "#052" + "name" : "#052", + "y" : 91 }, { - "name" : "#053", "y" : 101, + "name" : "#053", "drilldown" : "053" }, { - "y" : 103, + "drilldown" : "054", "name" : "#054", - "drilldown" : "054" + "y" : 103 }, { - "name" : "#055", + "drilldown" : "055", "y" : 88, - "drilldown" : "055" + "name" : "#055" }, { - "drilldown" : "056", + "name" : "#056", "y" : 95, - "name" : "#056" + "drilldown" : "056" }, { "drilldown" : "057", - "name" : "#057", - "y" : 80 + "y" : 80, + "name" : "#057" }, { + "drilldown" : "058", "y" : 69, -