lyngocjimmy1
New member
#541, #LeetCode, #C ++, #algorithms, #Interview Câu hỏi ## 541.
Cho một danh sách các số nguyên được biểu diễn dưới dạng một chuỗi, làm phẳng nó thành một danh sách duy nhất.
**Ví dụ:**
`` `
Đưa ra danh sách `[[1,1], 2, [3,4]]`, nó nên được làm phẳng thành `[1,1,2,3,4]`.
`` `
**Ghi chú:**
- Danh sách lồng nhau trong danh sách sẽ được biểu diễn dưới dạng danh sách trong dấu ngoặc.
- Danh sách lồng nhau với độ sâu khác nhau sẽ được làm phẳng vào một danh sách duy nhất có cùng độ sâu.
**Giải pháp:**
`` `C ++
/**
* Định nghĩa cho một nút cây nhị phân.
* struct treende {
* int val;
* Treenode * trái;
* Treenode * phải;
* Treenode (int x): val (x), trái (null), phải (null) {}
*};
*/
lớp NestedIterator {
công cộng:
NestedIterator (Vector <TrestedInteger> & nestedlist) {
for (auto ni: nestedList) {
if (ni.isinteger ()) {
Q.Push (ni.getInteger ());
} khác {
stack.push (Ni);
}
}
}
int next () {
int res = q.front ();
Q.Pop ();
while (! stack.empty () &&! stack.top (). isinteger ()) {
q.push (stack.top (). getList () [0]);
stack.top (). getList (). erase (stack.top (). getList (). started ());
if (stack.top (). getList (). trống ()) {
stack.pop ();
}
}
trả lại res;
}
bool hasnext () {
Trả lại! Q.Empty () ||! stack.empty ();
}
riêng tư:
Hàng đợi <Int> q;
Stack <TrestedInteger> stack;
};
`` `
## 5 hashtags
- #541
- #LeetCode
- #C ++
- #algorithms
- #câu hỏi phỏng vấn
=======================================
#541, #LeetCode, #C++, #algorithms, #Interview Questions ## 541. Flatten Nested List Iterator
Given a nested list of integers represented as a string, flatten it into a single list.
**Example:**
```
Given the list `[[1,1],2,[3,4]]`, it should be flattened into `[1,1,2,3,4]`.
```
**Note:**
- Nested lists within lists will be represented as lists within brackets.
- Nested lists with different depths will be flattened into a single list with the same depth.
**Solution:**
```c++
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class NestedIterator {
public:
NestedIterator(vector<NestedInteger> &nestedList) {
for (auto ni : nestedList) {
if (ni.isInteger()) {
q.push(ni.getInteger());
} else {
stack.push(ni);
}
}
}
int next() {
int res = q.front();
q.pop();
while (!stack.empty() && !stack.top().isInteger()) {
q.push(stack.top().getList()[0]);
stack.top().getList().erase(stack.top().getList().begin());
if (stack.top().getList().empty()) {
stack.pop();
}
}
return res;
}
bool hasNext() {
return !q.empty() || !stack.empty();
}
private:
queue<int> q;
stack<NestedInteger> stack;
};
```
## 5 Hashtags
- #541
- #LeetCode
- #C++
- #algorithms
- #Interview Questions
Cho một danh sách các số nguyên được biểu diễn dưới dạng một chuỗi, làm phẳng nó thành một danh sách duy nhất.
**Ví dụ:**
`` `
Đưa ra danh sách `[[1,1], 2, [3,4]]`, nó nên được làm phẳng thành `[1,1,2,3,4]`.
`` `
**Ghi chú:**
- Danh sách lồng nhau trong danh sách sẽ được biểu diễn dưới dạng danh sách trong dấu ngoặc.
- Danh sách lồng nhau với độ sâu khác nhau sẽ được làm phẳng vào một danh sách duy nhất có cùng độ sâu.
**Giải pháp:**
`` `C ++
/**
* Định nghĩa cho một nút cây nhị phân.
* struct treende {
* int val;
* Treenode * trái;
* Treenode * phải;
* Treenode (int x): val (x), trái (null), phải (null) {}
*};
*/
lớp NestedIterator {
công cộng:
NestedIterator (Vector <TrestedInteger> & nestedlist) {
for (auto ni: nestedList) {
if (ni.isinteger ()) {
Q.Push (ni.getInteger ());
} khác {
stack.push (Ni);
}
}
}
int next () {
int res = q.front ();
Q.Pop ();
while (! stack.empty () &&! stack.top (). isinteger ()) {
q.push (stack.top (). getList () [0]);
stack.top (). getList (). erase (stack.top (). getList (). started ());
if (stack.top (). getList (). trống ()) {
stack.pop ();
}
}
trả lại res;
}
bool hasnext () {
Trả lại! Q.Empty () ||! stack.empty ();
}
riêng tư:
Hàng đợi <Int> q;
Stack <TrestedInteger> stack;
};
`` `
## 5 hashtags
- #541
- #LeetCode
- #C ++
- #algorithms
- #câu hỏi phỏng vấn
=======================================
#541, #LeetCode, #C++, #algorithms, #Interview Questions ## 541. Flatten Nested List Iterator
Given a nested list of integers represented as a string, flatten it into a single list.
**Example:**
```
Given the list `[[1,1],2,[3,4]]`, it should be flattened into `[1,1,2,3,4]`.
```
**Note:**
- Nested lists within lists will be represented as lists within brackets.
- Nested lists with different depths will be flattened into a single list with the same depth.
**Solution:**
```c++
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class NestedIterator {
public:
NestedIterator(vector<NestedInteger> &nestedList) {
for (auto ni : nestedList) {
if (ni.isInteger()) {
q.push(ni.getInteger());
} else {
stack.push(ni);
}
}
}
int next() {
int res = q.front();
q.pop();
while (!stack.empty() && !stack.top().isInteger()) {
q.push(stack.top().getList()[0]);
stack.top().getList().erase(stack.top().getList().begin());
if (stack.top().getList().empty()) {
stack.pop();
}
}
return res;
}
bool hasNext() {
return !q.empty() || !stack.empty();
}
private:
queue<int> q;
stack<NestedInteger> stack;
};
```
## 5 Hashtags
- #541
- #LeetCode
- #C++
- #algorithms
- #Interview Questions