mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Merge pull request #1238 from GitHubQAQ/master
#0383.赎金信.md 更新:C++代码添加预判断长度的代码
This commit is contained in:
@ -227,7 +227,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
vector<string> restoreIpAddresses(string s) {
|
vector<string> restoreIpAddresses(string s) {
|
||||||
result.clear();
|
result.clear();
|
||||||
if (s.size() > 12) return result; // 算是剪枝了
|
if (s.size() < 4 || s.size() > 12) return result; // 算是剪枝了
|
||||||
backtracking(s, 0, 0);
|
backtracking(s, 0, 0);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ TreeNode* traversal (vector<int>& inorder, vector<int>& postorder) {
|
|||||||
中序数组相对比较好切,找到切割点(后序数组的最后一个元素)在中序数组的位置,然后切割,如下代码中我坚持左闭右开的原则:
|
中序数组相对比较好切,找到切割点(后序数组的最后一个元素)在中序数组的位置,然后切割,如下代码中我坚持左闭右开的原则:
|
||||||
|
|
||||||
|
|
||||||
```C++
|
```CPP
|
||||||
// 找到中序遍历的切割点
|
// 找到中序遍历的切割点
|
||||||
int delimiterIndex;
|
int delimiterIndex;
|
||||||
for (delimiterIndex = 0; delimiterIndex < inorder.size(); delimiterIndex++) {
|
for (delimiterIndex = 0; delimiterIndex < inorder.size(); delimiterIndex++) {
|
||||||
@ -130,7 +130,7 @@ vector<int> rightInorder(inorder.begin() + delimiterIndex + 1, inorder.end() );
|
|||||||
|
|
||||||
代码如下:
|
代码如下:
|
||||||
|
|
||||||
```
|
```CPP
|
||||||
// postorder 舍弃末尾元素,因为这个元素就是中间节点,已经用过了
|
// postorder 舍弃末尾元素,因为这个元素就是中间节点,已经用过了
|
||||||
postorder.resize(postorder.size() - 1);
|
postorder.resize(postorder.size() - 1);
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ vector<int> rightPostorder(postorder.begin() + leftInorder.size(), postorder.end
|
|||||||
|
|
||||||
接下来可以递归了,代码如下:
|
接下来可以递归了,代码如下:
|
||||||
|
|
||||||
```
|
```CPP
|
||||||
root->left = traversal(leftInorder, leftPostorder);
|
root->left = traversal(leftInorder, leftPostorder);
|
||||||
root->right = traversal(rightInorder, rightPostorder);
|
root->right = traversal(rightInorder, rightPostorder);
|
||||||
```
|
```
|
||||||
|
@ -84,6 +84,10 @@ class Solution {
|
|||||||
public:
|
public:
|
||||||
bool canConstruct(string ransomNote, string magazine) {
|
bool canConstruct(string ransomNote, string magazine) {
|
||||||
int record[26] = {0};
|
int record[26] = {0};
|
||||||
|
//add
|
||||||
|
if (ransomNote.size() > magazine.size()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
for (int i = 0; i < magazine.length(); i++) {
|
for (int i = 0; i < magazine.length(); i++) {
|
||||||
// 通过recode数据记录 magazine里各个字符出现次数
|
// 通过recode数据记录 magazine里各个字符出现次数
|
||||||
record[magazine[i]-'a'] ++;
|
record[magazine[i]-'a'] ++;
|
||||||
|
Reference in New Issue
Block a user