括号

P5658 括号树

£可爱£侵袭症+ 提交于 2019-12-15 02:10:47
P5658 括号树 题解 太菜了啥都不会写只能水5分数据 啥都不会写只能翻题解 题解大大我错了 我们手动找一下规律 我们设 w[ i ] 为从根节点到结点 i 对答案的贡献,也就是走到结点 i ,合法括号串又 多了几个 sum[ i ] 为从根节点到结点 i 总共 合法括号串数 ()()() w[i] 依次为 0 1 0 2 0 3 sum[i] 依次为 0 1 1 3 3 6 ())() w[i] 依次为 0 1 0 0 1 sum[i] 依次为 0 1 1 1 2 ()(()) w[i] 依次为 0 1 0 0 1 2 sum[i] 依次为 0 1 1 1 2 4 然后我们惊奇的发现 sum[i] 是 w[i] 的前缀和 最后要求的其实就是所有的 sum[i]*i 的异或和,所以当务之急只找到求解 w[ i ] 的方法 (1)发现如果 s[i] 是个左括号,那么显然不会有新的贡献出现,也就是w[i]=0 (2)如果 s[i] 是个右括号,那么我们找到他对应上一个右括号,贡献值也就是上一个右括号的贡献值+1:其实也就相当于,对于当前右括号,(如果条件允许)他有左括号与之匹配,对答案贡献为1,然鹅当前右括号对应的前一个右括号,他本就会对答案有一定的贡献,加上当前新匹配的一对括号,就生成新的匹配括号串,那么我们就将它作为当前右括号的贡献存下 举个栗子:()()() )() w[4]

linux 大于和小于括号的 区别

非 Y 不嫁゛ 提交于 2019-12-14 17:31:06
linux中经常会用到将内容输出到某文件当中,只需要在执行命令后面加上>或者>>号即可进入操作。 大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等) 小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入 >> 是追加内容 > 是覆盖原有内容 示例: echo 'abc' > test.txt echo '123' >> test.txt cat 123.txt > 456.txt mysql -u root -p -h test < test.sql 导入数据 来源: CSDN 作者: 奋斗成就男人 链接: https://blog.csdn.net/yxhxj2006/article/details/103538883

swift 深入理解Swift的闭包

人盡茶涼 提交于 2019-12-14 16:43:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们可用swift的闭包来定义变量的值。 先来一个简单的例子大家先感受感受。 定义一个字符串的变量的方法: 直接赋值 var str="JobDeer" 还可以用闭包的方式定义: var str:String={ return "JobDeer" }() 闭包还可以这么定义,省略了等号和括号: var str:String{ return "JobDeer" } 闭包中可以定义get方法。 var str:String{ get{ return "JobDeer" } } 既然用可以用get方法, 那么能用set方法吗? 可以的: var str:String{ get{ return "JobDeer" } set{ println("set ok") } } 我们在用 willSet 和didSet方法试一试, 注意 用 willSet /didSet不能和get/set共同使用的, 在使用willSet /didSet时,变量需要有初始值。 所以这么使用: var str:String="JobDeer"{ willSet{ println("newValue:\(newValue)") } didSet{ println("oldValue:\(oldValue)") } } str="new

LeetCode20. 有效的括号

…衆ロ難τιáo~ 提交于 2019-12-13 16:51:10
LeetCode20. 有效的括号 1.题目 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 2.示例 示例 1: 输入 : "()" 输出 : true 示例 2: 输入 : "()[]{}" 输出 : true 示例 3: 输入 : "(]" 输出 : false 示例 4: 输入 : "([)]" 输出 : false 示例 5: 输入 : "{[]}" 输出 : true 3.思路 栈的思想 4.代码 class Solution ( object ) : def isValid ( self , s ) : """ :type s: str :rtype: bool """ dic = { ")" : "(" , "]" : "[" , "}" : "{" } mat = [ ] for i in s : if i not in dic : mat . append ( i ) else : if len ( mat ) == 0 : return False elif dic [ i ] == mat [ - 1 ] : mat . pop ( ) else : return False return

打造自己的Sublime Text 3 编辑器

吃可爱长大的小学妹 提交于 2019-12-10 02:16:32
Sublime Text 3据说是windows下的编辑神器,有很多vim的功能,字体颜色超丰富,灰常不错(装X专用*_*)。 1,sublime安装 官网http://www.sublimetext.com/3下载 2,package control安装 打开地址https://packagecontrol.io/installation 在Sublime Text 3,菜单 View -> Show Console,会在底部出现一个命令输入框,然后将刚打开页面上面的Sublime Text 3命令拷贝到输入框中,回车,等待(时长剧网速而定), 安装成功,这时Preference下就有Package Control了。 3,插件安装 快捷键 Ctrl+Shift+P 打开Package Control,在打开的输入框中输入 install ,它会根据你的输入自动提示,选择 Install Package。在弹出的输入框,输入你 要安装的插件名。 ConvertToUTF8 支持UTF-8编码 BracketHighlighter 高亮匹配括号,引号和html标签 Emmet(Zen Coding) 快速生成HTML代码段 Themr 主题管理,切换主题的时候,不用自己修改配置文件了,用这个可以方便的切换主题 Glacier、Predawn 安装了俩主题,挺漂亮,够用,主题太多了

python中的正则匹配

守給你的承諾、 提交于 2019-12-09 21:27:53
对于一个文本的字符串多行处理,如果使用split()函数,需要逐行处理,处理的代码也会比较复杂而且阅读体验感不是很好。re模块提供了的匹配函数,但是需要正则化相关的知识。 对于正则表达式样式使用 Python 的原始字符串表示法;在带有 'r' 前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此 r"\n" 表示包含 '' 和 'n' 两个字符的字符串,而 "\n" 则表示只包含一个换行符的字符串。 样式在 Python 代码中通常都会使用这种原始字符串表示法来表示。 特殊字符 '.'在默认模式,匹配除了换行的任意字符。 '^'匹配字符串的开头, 多行模式匹配换行后的首个符号。 '$'匹配字符串尾或者换行符的前一个字符,多行模式匹配换行符的前一个字符。 ' '对它前面的正则式匹配0到任意次重复, 尽量多的匹配字符串。 ab 会匹配 'a', 'ab'。 '+'对它前面的正则式匹配1到任意次重复。 ab+ 会匹配 'a' 后面跟随1个以上到任意个 'b',它不会匹配 'a'。 '?'对它前面的正则式匹配0到1次重复。 ab? 会匹配 'a' 或者 'ab'。 “{m}”对其之前的正则式指定匹配 m 个重复;少于 m 的话就会导致匹配失败。比如, a{6} 将匹配6个 'a' , 但是不能是5个 {m,n}?前一个修饰符的非贪婪模式,只匹配尽量少的字符次数。比如,对于

Vue实现轮播图

感情迁移 提交于 2019-12-09 16:44:19
Vue实现轮播图 功能描述 1.点击左尖括号图片,切换为上一张图片 2.点击右尖括号图片,切换为上一张图片 3.当前为第一张图片时,左边尖括号图片不显示 4.当前图片为最后一张图片时,右边尖括号图片不显示 实现原理 1.用一个数组存储图片的相对路径,通过改变数组的索引来改变图片的src属性,进而实现图片切换。 2.当前显示为第一张图片时,索引值为0(由于数组的下标是从0开始)。 3.左右边尖括号图片的显示,通过v-show属性的布尔值来控制,当数组的索引值大于0时,左边尖括号图片显示出来。 4.当数组的索引值小于数组的长度-1时,右边边尖括号图片显示出来。 文件结构 图片: 相关代码 < ! DOCTYPE html > < html > < head > < meta charset = "utf-8" > < title > 轮播图 < / title > < ! -- < style > h2 { color : # FF0000 ; } #center { width : 1000 px ; height : 750 px ; position : absolute ; display : inline ; left : 500 px ; top : 250 px ; display : inline ; } . center . pre { position :

LeetCode-32.最长有效括号(考察点:栈/动态规划)

倖福魔咒の 提交于 2019-12-08 06:11:59
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()" 解法1:栈 类似于之前 LeetCode20-有效的括号 (该题的解法不再详述, 大致思路:遇左括号入栈,遇右括号,先判断栈是否为空,若栈为空,则直接return false,若栈不为空,则出栈,继续处理下一字符;字符串结束时,若栈为空,return true,否则return false ),可以用栈来解决。 但是做题的时候,发现了一个难点,即示例2的情况,第二个字符和第三个字符是一对有效的括号,此有效括号子串长度为2,第四个字符和第五个字符也是一对有效的括号,且这两个有效括号子串是挨着的,返回的结果应该是这两个有效括号子串长度之和。 用下面这个例子来看更直观一点: 下标3-14是一个有效括号子串,长度为12;15-16也是一个有效括号子串,长度为2;17-20是一个有效括号子串,长度为4,但最长有效括号子串长度并不是12,也不是12+2+4,而是下标2-21的有效括号子串,长度为20。 所以此种做法的难度在于如何判断两个有效括号子串是否直接相邻,若直接相邻,则最长有效括号子串需要将这两个相邻的子串包含进来

Jquery中的正则表达式

♀尐吖头ヾ 提交于 2019-12-07 18:08:59
1. 在使用表单提交数据的时候由于输入的数据可能不合法,所以在表单提交或者文本框发生变化的时候来校验数据是否符合规定的要求,假如不符合要求,那么需要提示错误信息给用户,让用户重新输入,并且return false让表单不能够提交到控制器中 2. 这里我们使用Jquery来调用表单文本框内容改变的监听函数: change() ,当文本框内容改变的时候进行数据校验,所以这里涉及到了正则表达式的书写,下面是常用的几种匹配方式: ^ 以...开头 $ 以...结尾 * 匹配前面的表达式任意次 + 匹配前面的表达式一次或者多次,相当于{0,} {n} 匹配确定的n次 {n,} 至少匹配n次 {m,n} 最少匹配 m 次且最多匹配 n 次 \d 匹配数字0-9 [a-z] 匹配小写字母 [A-Z] 匹配大写字母 [a-zA-Z]匹配任意字母 [0-9] 匹配数字 x|y 匹配符合x条件或者y条件 ...还有一些是不太常用的匹配 3. 这里特别要注意的是假如匹配表单上中存在着|运算符的时候特别是匹配的内容处于中间的时候,比如就像下面的邮箱的匹配,@后面可以是若干位的数字或者字母,这时候匹配的内容处于中间的时候一定要加上括号,例如x|y 加上括号:(x|y),所以像下面这样加: var regEmail = /^\d{10,12}@ ( \d{3}|[a-zA-Z]{2,4} ) .[a-zA-Z

PHP - print

有些话、适合烂在心里 提交于 2019-12-06 11:42:39
(PHP4, PHP5, PHP7) print - 输出一个字符串 说明: int print ( string $arg ) 输出arg print不是一个真实函数,它只是一种语言结构,因此不强制要求对参数列表使用括号括起来。 它与echo主要不同在于print只接收单个参数且总是返回1 参数: arg - 输入数据 返回值: 总是返回1 实例: #1 打印实例 <?php print("Hello World"); print "print() also works without parentheses."; //无括号时仍然可用 print "This spans multiple lines. The newlines will be output as well"; // 可分行输出 print "This spans\nmultiple lines. The newlines will be\noutput as well."; // 使用\n分行 print "escaping characters is done \"Like this\"."; // 需要显示双引号字符"时需要在前面加反斜杠\ // 可在print语句内使用变量 $foo = "foobar"; $bar = "barbaz"; print "foo is $foo"; //