-
-
Notifications
You must be signed in to change notification settings - Fork 38
Closed
Description
leetgo debug
Leetgo version info :
1.4
commit: 65d21e431204bc508012b3f6b6e9d1942d3a3857
built at: 2024-01-06T08:07:17Z
goos: linux
goarch: amd64
Home dir : /home/[user]/.config/leetgo
Project root : /home/[user]/Work/learning/leetcode
Working dir : /home/[user]/Work/learning/leetcode
Project config file : /home/[user]/Work/learning/leetcode/leetgo.yaml
Project configuration:
# Leetgo configuration file, see more at https://github.com/j178/leetgo
# Your name
author: user
# Language of the question description: zh or en
language: en
code:
# Language of code generated for questions: go, cpp, python, java...
# (will be overridden by command line flag -l/--lang)
lang: rust
# The default template to generate filename (without extension), e.g. {{.Id}}.{{.Slug}}
# Available attributes: Id, Slug, Title, Difficulty, Lang, SlugIsMeaningful
# Available functions: lower, upper, trim, padWithZero, toUnderscore, group
filename_template: '{{ .Id | padWithZero 4 }}{{ if .SlugIsMeaningful }}.{{ .Slug }}{{ end }}'
# Generate question description into a separate question.md file
separate_description_file: true
# Default modifiers for all languages
modifiers:
- name: removeUselessComments
go:
out_dir: go
# Functions that modify the generated code
modifiers:
- name: removeUselessComments
- name: changeReceiverName
- name: addNamedReturn
- name: addMod
python3:
out_dir: python
# Python executable that creates the venv
executable: python3
cpp:
out_dir: cpp
# C++ compiler
cxx: g++
# C++ compiler flags (our Leetcode I/O library implementation requires C++17)
cxxflags: -O2 -std=c++17
rust:
out_dir: rust
java:
out_dir: java
leetcode:
# LeetCode site, https://leetcode.com or https://leetcode.cn
site: https://leetcode.com
# Credentials to access LeetCode
credentials:
# How to provide credentials: browser, cookies, password or none
from: cookies
# Browsers to get cookies from: chrome, safari, edge or firefox. If empty, all browsers will be tried
contest:
# Base dir to put generated contest questions
out_dir: contest
# Template to generate filename of the question
filename_template: '{{ .ContestShortSlug }}/{{ .Id }}{{ if .SlugIsMeaningful }}.{{ .Slug }}{{ end }}'
# Open the contest page in browser after generating
open_in_browser: true
# Editor settings to open generated files
editor:
# Use a predefined editor: vim, vscode, goland
# Set to 'none' to disable, set to 'custom' to provide your own command
use: none
# Custom command to open files
command: ""
# Arguments to the command.
# String contains {{.CodeFile}}, {{.TestFile}}, {{.DescriptionFile}}, {{.TestCasesFile}} will be replaced with corresponding file path.
# {{.Folder}} will be substituted with the output directory.
# {{.Files}} will be substituted with the list of all file paths.
args: ""
Full configuration :
author: user
language: en
code:
lang: rust
filename_template: '{{ .Id | padWithZero 4 }}{{ if .SlugIsMeaningful }}.{{ .Slug }}{{ end }}'
separate_description_file: true
modifiers:
- name: removeUselessComments
go:
out_dir: go
modifiers:
- name: removeUselessComments
- name: changeReceiverName
- name: addNamedReturn
- name: addMod
python3:
out_dir: python
executable: python3
cpp:
out_dir: cpp
cxx: g++
cxxflags: -O2 -std=c++17
rust:
out_dir: rust
java:
out_dir: java
leetcode:
site: https://leetcode.com
credentials:
from: cookies
browsers: []
contest:
out_dir: contest
filename_template: '{{ .ContestShortSlug }}/{{ .Id }}{{ if .SlugIsMeaningful }}.{{ .Slug }}{{ end }}'
open_in_browser: true
editor:
use: none
command: ""
args: ""Debug log
2024/01/26 22:54:36 DEBU cache loaded path=/home/[user]/.config/leetgo/cache/leetcode-questions.json elapsed=15.929004ms
2024/01/26 22:54:36 DEBU request method=POST url=https://leetcode.com/graphql
body=
│ {"operationName":"questionData","query":"\n\tquery questionData($titleSlug: String!) {\n\t\tquestion(titleSlug: $titleSlug) {\n\t\t\tquestionId\n\t\t\tquestionFrontendId\n\t\t\tcategoryTitle\n\t\t\ttitle\n\t\t\ttitleSlug\n\t\t\tcontent\n\t\t\tisPaidOnly\n\t\t\ttranslatedTitle\n\t\t\ttranslatedContent\n\t\t\tdifficulty\n\t\t\tstatus\n\t\t\tstats\n\t\t\thints\n\t\t\tsimilarQuestions\n\t\t\tsampleTestCase\n\t\t\texampleTestcases\n\t\t\texampleTestcaseList\n\t\t\tmetaData\n\t\t\tcodeSnippets {\n\t\t\t\tlang\n\t\t\t\tlangSlug\n\t\t\t\tcode\n\t\t\t}\n\t\t\ttopicTags {\n\t\t\t\tname\n\t\t\t\tslug\n\t\t\t\ttranslatedName\n\t\t\t}\n\t\t}\n\t}","variables":{"titleSlug":"two-sum"}}
2024/01/26 22:54:36 DEBU response url=https://leetcode.com/graphql code=200
headers=
│ Cf-Cache-Status: DYNAMIC\r
│ Cf-Ray: 84bbfed05f2a34e6-WAW\r
│ Content-Encoding: gzip\r
│ Content-Type: application/json\r
│ Nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}\r
│ Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=UCYBiueDT6S%2B8cPBfOzqYKqZ8EtYwUk7mT50U5jaaLG319mNgZ2b%2Fpyizu0W4ujYSE%2FcpSgmhj2xQ5lLbxEwNPUBzwwSf1G%2BCJuTpMhdngZerULj%2FA43QVNsy1eacA%3D%3D"}],"group":"cf-nel","max_age":604800}\r
│ Server: cloudflare\r
│ X-Content-Type-Options: nosniff\r
data="{\"data\":{\"question\":{\"questionId\":\"1\",\"questionFrontendId\":\"1\",\"categoryTitle\":\"Algorithms\",\"title\":\"Two Sum\",\"titleSlug\":\"two-sum\",\"content\":\"<p>Given an array of integers <code>nums</code> and an integer <code>target</code>, return <em>indices of the two numbers such that they add up to <code>target</code></em>.</p>\n\n<p>You may assume that each input would have <strong><em>exactly</em> one solution</strong>, and you may not use the <em>same</em> element twice.</p>\n\n<p>You can return the answer in any order.</p>\n\n<p> </p>\n<p><strong class=\\"example\\">Example 1:</strong></p>\n\n<pre>\n<strong>Input:</strong> nums = [2,7,11,15], target = 9\n<strong>Output:</strong> [0,1]\n<strong>Explanation:</strong> Because nums[0] + nums[1] == 9, we return [0, 1].\n</pre>\n\n<p><strong class=\\"example\\">Example 2:</strong></p>\n\n<pre>\n<strong>Input:</strong> nums = [3,2,4], target = 6\n<strong>Output:</strong> [1,2]\n</pre>\n\n<p><strong class=\\"example\\">Example 3:</strong></p>\n\n<pre>\n<strong>Input:</strong> nums = [3,3], target = 6\n<strong>Output:</strong> [0,1]\n</pre>\n\n<p> </p>\n<p><strong>Constraints:</strong></p>\n\n<ul>\n\t<li><code>2 <= nums.length <= 10<sup>4</sup></code></li>\n\t<li><code>-10<sup>9</sup> <= nums[i] <= 10<sup>9</sup></code></li>\n\t<li><code>-10<sup>9</sup> <= target <= 10<sup>9</sup></code></li>\n\t<li><strong>Only one valid answer exists.</strong></li>\n</ul>\n\n<p> </p>\n<strong>Follow-up: </strong>Can you come up with an algorithm that is less than <code>O(n<sup>2</sup>)</code><font face=\\"monospace\\"> </font>time complexity?\",\"isPaidOnly\":false,\"translatedTitle\":null,\"translatedContent\":null,\"difficulty\":\"Easy\",\"status\":null,\"stats\":\"{\\"totalAccepted\\": \\"12.1M\\", \\"totalSubmission\\": \\"23.4M\\", \\"totalAcceptedRaw\\": 12068392, \\"totalSubmissionRaw\\": 23368562, \\"acRate\\": \\"51.6%\\"}\",\"hints\":[\"A really brute force way would be to search for all possible pairs of numbers but that would be too slow. Again, it's best to try out brute force solutions for just for completeness. It is from these brute force solutions that you can come up with optimizations.\",\"So, if we fix one of the numbers, say <code>x</code>, we have to scan the entire array to find the next number <code>y</code> which is <code>value - x</code> where value is the input parameter. Can we change our array somehow so that this search becomes faster?\",\"The second train of thought is, without changing the array, can we use additional space somehow? Like maybe a hash map to speed up the search?\"],\"similarQuestions\":\"[{\\"title\\": \\"3Sum\\", \\"titleSlug\\": \\"3sum\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"4Sum\\", \\"titleSlug\\": \\"4sum\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Two Sum II - Input Array Is Sorted\\", \\"titleSlug\\": \\"two-sum-ii-input-array-is-sorted\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Two Sum III - Data structure design\\", \\"titleSlug\\": \\"two-sum-iii-data-structure-design\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Subarray Sum Equals K\\", \\"titleSlug\\": \\"subarray-sum-equals-k\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Two Sum IV - Input is a BST\\", \\"titleSlug\\": \\"two-sum-iv-input-is-a-bst\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Two Sum Less Than K\\", \\"titleSlug\\": \\"two-sum-less-than-k\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Max Number of K-Sum Pairs\\", \\"titleSlug\\": \\"max-number-of-k-sum-pairs\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Count Good Meals\\", \\"titleSlug\\": \\"count-good-meals\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Count Number of Pairs With Absolute Difference K\\", \\"titleSlug\\": \\"count-number-of-pairs-with-absolute-difference-k\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Number of Pairs of Strings With Concatenation Equal to Target\\", \\"titleSlug\\": \\"number-of-pairs-of-strings-with-concatenation-equal-to-target\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Find All K-Distant Indices in an Array\\", \\"titleSlug\\": \\"find-all-k-distant-indices-in-an-array\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"First Letter to Appear Twice\\", \\"titleSlug\\": \\"first-letter-to-appear-twice\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Number of Excellent Pairs\\", \\"titleSlug\\": \\"number-of-excellent-pairs\\", \\"difficulty\\": \\"Hard\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Number of Arithmetic Triplets\\", \\"titleSlug\\": \\"number-of-arithmetic-triplets\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Node With Highest Edge Score\\", \\"titleSlug\\": \\"node-with-highest-edge-score\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Check Distances Between Same Letters\\", \\"titleSlug\\": \\"check-distances-between-same-letters\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Find Subarrays With Equal Sum\\", \\"titleSlug\\": \\"find-subarrays-with-equal-sum\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Largest Positive Integer That Exists With Its Negative\\", \\"titleSlug\\": \\"largest-positive-integer-that-exists-with-its-negative\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Number of Distinct Averages\\", \\"titleSlug\\": \\"number-of-distinct-averages\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}, {\\"title\\": \\"Count Pairs Whose Sum is Less than Target\\", \\"titleSlug\\": \\"count-pairs-whose-sum-is-less-than-target\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": null}]\",\"sampleTestCase\":\"[2,7,11,15]\n9\",\"exampleTestcases\":\"[2,7,11,15]\n9\n[3,2,4]\n6\n[3,3]\n6\",\"exampleTestcaseList\":[\"[2,7,11,15]\n9\",\"[3,2,4]\n6\",\"[3,3]\n6\"],\"metaData\":\"{\n \\"name\\": \\"twoSum\\",\n \\"params\\": [\n {\n \\"name\\": \\"nums\\",\n \\"type\\": \\"integer[]\\"\n },\n {\n \\"name\\": \\"target\\",\n \\"type\\": \\"integer\\"\n }\n ],\n \\"return\\": {\n \\"type\\": \\"integer[]\\",\n \\"size\\": 2\n },\n \\"manual\\": false\n}\",\"codeSnippets\":[{\"lang\":\"C++\",\"langSlug\":\"cpp\",\"code\":\"class Solution {\npublic:\n vector<int> twoSum(vector<int>& nums, int target) {\n \n }\n};\"},{\"lang\":\"Java\",\"langSlug\":\"java\",\"code\":\"class Solution {\n public int[] twoSum(int[] nums, int target) {\n \n }\n}\"},{\"lang\":\"Python\",\"langSlug\":\"python\",\"code\":\"class Solution(object):\n def twoSum(self, nums, target):\n \\"\\"\\"\n :type nums: List[int]\n :type target: int\n :rtype: List[int]\n \\"\\"\\"\n \"},{\"lang\":\"Python3\",\"langSlug\":\"python3\",\"code\":\"class Solution:\n def twoSum(self, nums: List[int], target: int) -> List[int]:\n \"},{\"lang\":\"C\",\"langSlug\":\"c\",\"code\":\"/**\n * Note: The returned array must be malloced, assume caller calls free().\n */\nint* twoSum(int* nums, int numsSize, int target, int* returnSize) {\n \n}\"},{\"lang\":\"C#\",\"langSlug\":\"csharp\",\"code\":\"public class Solution {\n public int[] TwoSum(int[] nums, int target) {\n \n }\n}\"},{\"lang\":\"JavaScript\",\"langSlug\":\"javascript\",\"code\":\"/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number[]}\n */\nvar twoSum = function(nums, target) {\n \n};\"},{\"lang\":\"TypeScript\",\"langSlug\":\"typescript\",\"code\":\"function twoSum(nums: number[], target: number): number[] {\n \n};\"},{\"lang\":\"PHP\",\"langSlug\":\"php\",\"code\":\"class Solution {\n\n /**\n * @param Integer[] $nums\n * @param Integer $target\n * @return Integer[]\n */\n function twoSum($nums, $target) {\n \n }\n}\"},{\"lang\":\"Swift\",\"langSlug\":\"swift\",\"code\":\"class Solution {\n func twoSum(_ nums: [Int], _ target: Int) -> [Int] {\n \n }\n}\"},{\"lang\":\"Kotlin\",\"langSlug\":\"kotlin\",\"code\":\"class Solution {\n fun twoSum(nums: IntArray, target: Int): IntArray {\n \n }\n}\"},{\"lang\":\"Dart\",\"langSlug\":\"dart\",\"code\":\"class Solution {\n List<int> twoSum(List<int> nums, int target) {\n \n }\n}\"},{\"lang\":\"Go\",\"langSlug\":\"golang\",\"code\":\"func twoSum(nums []int, target int) []int {\n \n}\"},{\"lang\":\"Ruby\",\"langSlug\":\"ruby\",\"code\":\"# @param {Integer[]} nums\n# @param {Integer} target\n# @return {Integer[]}\ndef two_sum(nums, target)\n \nend\"},{\"lang\":\"Scala\",\"langSlug\":\"scala\",\"code\":\"object Solution {\n def twoSum(nums: Array[Int], target: Int): Array[Int] = {\n \n }\n}\"},{\"lang\":\"Rust\",\"langSlug\":\"rust\",\"code\":\"impl Solution {\n pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {\n \n }\n}\"},{\"lang\":\"Racket\",\"langSlug\":\"racket\",\"code\":\"(define/contract (two-sum nums target)\n (-> (listof exact-integer?) exact-integer? (listof exact-integer?))\n )\"},{\"lang\":\"Erlang\",\"langSlug\":\"erlang\",\"code\":\"-spec two_sum(Nums :: [integer()], Target :: integer()) -> [integer()].\ntwo_sum(Nums, Target) ->\n .\"},{\"lang\":\"Elixir\",\"langSlug\":\"elixir\",\"code\":\"defmodule Solution do\n @spec two_sum(nums :: [integer], target :: integer) :: [integer]\n def two_sum(nums, target) do\n \n end\nend\"}],\"topicTags\":[{\"name\":\"Array\",\"slug\":\"array\",\"translatedName\":null},{\"name\":\"Hash Table\",\"slug\":\"hash-table\",\"translatedName\":null}]}}}"
panic: interface conversion: interface {} is nil, not []interface {}
goroutine 1 [running]:
github.com/j178/leetgo/lang.addBinSection(0xc0000f43f0)
github.com/j178/leetgo/lang/rust.go:384 +0x7b7
github.com/j178/leetgo/lang.generate(0xc000fa9180)
github.com/j178/leetgo/lang/gen.go:103 +0x57f
github.com/j178/leetgo/lang.Generate(0xc000fa9180)
github.com/j178/leetgo/lang/gen.go:126 +0x2a
github.com/j178/leetgo/cmd.glob..func16(0x203bc60?, {0xc000452700, 0x1, 0x13452c3?})
github.com/j178/leetgo/cmd/pick.go:135 +0x205
github.com/spf13/cobra.(*Command).execute(0x203bc60, {0xc0004526d0, 0x1, 0x1})
github.com/spf13/cobra@v1.8.0/command.go:983 +0xabc
github.com/spf13/cobra.(*Command).ExecuteC(0x203b3c0)
github.com/spf13/cobra@v1.8.0/command.go:1115 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/cobra@v1.8.0/command.go:1039
github.com/j178/leetgo/cmd.Execute()
github.com/j178/leetgo/cmd/root.go:51 +0x1e
main.main()
github.com/j178/leetgo/main.go:6 +0xfDescription
I've got this panic message when when running command: leetgo pick two-sum right after configuring with leetgo init -t us -l rust
Metadata
Metadata
Assignees
Labels
No labels