Skip to content

Commit 5f56d5c

Browse files
authored
Merge pull request #175 from ccagml/main
debug
2 parents b3bb049 + ab8d221 commit 5f56d5c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+11955
-189
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## version 2.15.1
2+
3+
- 参考 wangtao0101/vscode-debug-leetcode 添加 debug
4+
15
## version 2.14.2
26

37
- BWC96 & WC328 & WC329 数据

README.md

Lines changed: 24 additions & 21 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 102 additions & 100 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-leetcode-problem-rating",
33
"displayName": "LeetCode",
44
"description": "%main.description%",
5-
"version": "2.14.2",
5+
"version": "2.15.1",
66
"author": "ccagml",
77
"publisher": "ccagml",
88
"license": "MIT",
@@ -247,6 +247,11 @@
247247
"command": "lcpr.includeTemplates",
248248
"title": "插入头文件模板",
249249
"icon": "$(remove)"
250+
},
251+
{
252+
"command": "lcpr.simpleDebug",
253+
"title": "简单调试",
254+
"icon": "$(remove)"
250255
}
251256
],
252257
"viewsContainers": {

resources/debug/entry/cpp/entry.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#include <iostream>
2+
#include <vector>
3+
#include <queue>
4+
#include <string>
5+
#include <cstring>
6+
7+
#include "cJSON.h"
8+
9+
using namespace std;
10+
11+
// @@stub-for-include-code@@
12+
13+
int main(int argc, char **argv)
14+
{
15+
for (int i = 0; i < argc; i++)
16+
{
17+
cout << "Argument " << i << " is " << argv[i] << endl;
18+
}
19+
20+
// @@stub-for-body-code@@
21+
22+
// for (int i = 0; i < params.size(); i++)
23+
// {
24+
// string param = params[i];
25+
// string paramType = paramsType[i];
26+
// cJSON *item = cJSON_Parse(param.c_str());
27+
// if (paramType == "number")
28+
// {
29+
// int num = parseNumber(item);
30+
// res.push_back(&num);
31+
// }
32+
// else if (paramType == "number[]")
33+
// {
34+
// vector<int> vint = parseNumberArray(item);
35+
// res.push_back(&vint);
36+
// }
37+
// }
38+
39+
return 0;
40+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
Node *parseNodeElement(cJSON *node)
2+
{
3+
if (node->type != cJSON_Number)
4+
{
5+
return nullptr;
6+
}
7+
return new Node(node->valueint);
8+
}
9+
10+
Node *parseNode(const cJSON *node)
11+
{
12+
if (node->type != cJSON_Array)
13+
{
14+
throw "Parse parameter error, expect NumberArray";
15+
}
16+
17+
int i = 0;
18+
int isLeft = true;
19+
Node *first = parseNodeElement(cJSON_GetArrayItem(node, i));
20+
queue<Node *> q;
21+
q.push(first);
22+
int size = cJSON_GetArraySize(node);
23+
24+
for (i = 1; i < size; i++)
25+
{
26+
Node *top = q.front();
27+
Node *child = parseNodeElement(cJSON_GetArrayItem(node, i));
28+
if (isLeft)
29+
{
30+
top->left = child;
31+
isLeft = false;
32+
}
33+
else
34+
{
35+
top->right = child;
36+
isLeft = true;
37+
q.pop();
38+
}
39+
if (child != nullptr)
40+
{
41+
q.push(child);
42+
}
43+
}
44+
45+
return first;
46+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Node
2+
{
3+
public:
4+
int val;
5+
Node *left;
6+
Node *right;
7+
Node *next;
8+
9+
Node() : val(0), left(NULL), right(NULL), next(NULL) {}
10+
11+
Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}
12+
13+
Node(int _val, Node *_left, Node *_right, Node *_next)
14+
: val(_val), left(_left), right(_right), next(_next) {}
15+
};
16+
17+
Node *parseNode(const cJSON *node);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Node *parseNode(const vector<vector<int>> vec)
2+
{
3+
vector<Node *> arr{};
4+
int i = 0;
5+
int j = 0;
6+
for (i = 0; i < vec.size(); i++)
7+
{
8+
vector<Node *> nei{};
9+
arr.push_back(new Node(i + 1, nei));
10+
}
11+
for (i = 0; i < vec.size(); i++)
12+
{
13+
for (j = 0; j < vec[i].size(); j++)
14+
{
15+
arr[i]->neighbors.push_back(arr[vec[i][j] - 1]);
16+
}
17+
}
18+
return arr[0];
19+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Node
2+
{
3+
public:
4+
int val;
5+
vector<Node *> neighbors;
6+
7+
Node() {}
8+
9+
Node(int _val, vector<Node *> _neighbors)
10+
{
11+
val = _val;
12+
neighbors = _neighbors;
13+
}
14+
};
15+
16+
Node *parseNode(const vector<vector<int>> vec);
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
Node *parseValueElement(cJSON *node)
2+
{
3+
int size = cJSON_GetArraySize(node);
4+
if (node->type != cJSON_Array && size == 2)
5+
{
6+
throw "Parse parameter error, expect NumberArray with length: 2";
7+
}
8+
int value = parseNumber(cJSON_GetArrayItem(node, 0));
9+
return new Node(value);
10+
}
11+
12+
int parseRandomElement(cJSON *node)
13+
{
14+
cJSON *child = cJSON_GetArrayItem(node, 1);
15+
16+
if (child->type != cJSON_Number)
17+
{
18+
return -1;
19+
}
20+
return child->valueint;
21+
}
22+
23+
Node *parseNode(vector<cJSON *> vec)
24+
{
25+
vector<Node *> arr{};
26+
int i = 0;
27+
for (i = 0; i < vec.size(); i++)
28+
{
29+
arr.push_back(parseValueElement(vec[i]));
30+
}
31+
for (i = 0; i < vec.size(); i++)
32+
{
33+
if (i != vec.size())
34+
{
35+
arr[i]->next = arr[i + 1];
36+
}
37+
int el = parseRandomElement(vec[i]);
38+
if (el != -1)
39+
{
40+
arr[i]->random = arr[el];
41+
}
42+
}
43+
44+
return arr[0];
45+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Node
2+
{
3+
public:
4+
int val;
5+
Node *next;
6+
Node *random;
7+
8+
Node(int _val)
9+
{
10+
val = _val;
11+
next = NULL;
12+
random = NULL;
13+
}
14+
};
15+
16+
Node *parseNode(vector<cJSON *> vec);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
int badVersion = 0;
2+
3+
bool isBadVersion(int version)
4+
{
5+
if (version >= badVersion)
6+
{
7+
return true;
8+
}
9+
return false;
10+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
extern int badVersion;
2+
bool isBadVersion(int version);
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
Node *parseNodeElement(cJSON *node)
2+
{
3+
if (node->type != cJSON_Number)
4+
{
5+
return nullptr;
6+
}
7+
vector<Node *> child{};
8+
return new Node(node->valueint, child);
9+
}
10+
11+
Node *parseNode(const cJSON *node)
12+
{
13+
if (node->type != cJSON_Array)
14+
{
15+
throw "Parse parameter error, expect NumberArray";
16+
}
17+
18+
int size = cJSON_GetArraySize(node);
19+
20+
if (size == 0)
21+
{
22+
return nullptr;
23+
}
24+
25+
int i = 0;
26+
int isLeft = true;
27+
Node *first = parseNodeElement(cJSON_GetArrayItem(node, i));
28+
queue<Node *> q;
29+
q.push(first);
30+
31+
for (i = 2; i < size; i++)
32+
{
33+
Node *top = q.front();
34+
Node *child = parseNodeElement(cJSON_GetArrayItem(node, i));
35+
if (child == nullptr)
36+
{
37+
q.pop();
38+
}
39+
else
40+
{
41+
top->children.push_back(child);
42+
q.push(child);
43+
}
44+
}
45+
46+
return first;
47+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Node
2+
{
3+
public:
4+
int val;
5+
vector<Node *> children;
6+
7+
Node() {}
8+
9+
Node(int _val)
10+
{
11+
val = _val;
12+
}
13+
14+
Node(int _val, vector<Node *> _children)
15+
{
16+
val = _val;
17+
children = _children;
18+
}
19+
};
20+
21+
Node *parseNode(const cJSON *node);
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
string secret = "";
2+
3+
int Master::guess(string word)
4+
{
5+
int match = 0;
6+
for (int i = 0; i < word.length(); i++)
7+
{
8+
if (word[i] == secret[i])
9+
{
10+
match += 1;
11+
}
12+
}
13+
if (match == 0)
14+
{
15+
return -1;
16+
}
17+
return match;
18+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
extern string secret;
2+
3+
class Master
4+
{
5+
public:
6+
int guess(string word);
7+
};

0 commit comments

Comments
 (0)