括号

Python 元组(Tuple)操作详解

匿名 (未验证) 提交于 2019-12-02 22:51:30
Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 一、创建元组 代码如下: tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d"; 创建空元组 代码如下: tup1 = (); 元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义 代码如下: tup1 = (50,); 元组与字符串类似,下标索引从0开始,可以进行截取,组合等。 二、访问元组 元组可以使用下标索引来访问元组中的值,如下实例: 代码如下: #!/usr/bin/python tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print "tup1[0]: ", tup1[0] print "tup2[1:5]: ", tup2[1:5] #以上实例输出结果: #tup1[0]: physics #tup2[1:5]: [2, 3, 4, 5] 三、修改元组 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例: 代码如下: #!/usr/bin/python

leetcode 5190. 反转每对括号间的子串(C++、python)

匿名 (未验证) 提交于 2019-12-02 22:51:30
给出一个字符串 s (仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 1: 输入: s = "(abcd)" 输出: "dcba" 示例 2: 输入: s = "(u(love)i)" 输出: "iloveu" 示例 3: 输入: s = "(ed(et(oc))el)" 输出: "leetcode" 示例 4: 输入: s = "a(bcdefghijkl(mno)p)q" 输出: "apmnolkjihgfedcbq" 提示: 0 <= s.length <= 2000 s 中只有小写英文字母和括号 我们确保所有括号都是成对出现的 C++ class Solution { public : string reverseParentheses ( string s ) { string res ; int n = s . length (); vector <string> vec ; for ( int i = 0 ; i < n ; i ++) { if ( '(' == s [ i ]) { vec . push_back ( "" ); } else if ( ')' == s [ i ]) { string str = vec . back (); vec .

mysql优化之Nested Join Optimization

匿名 (未验证) 提交于 2019-12-02 22:06:11
在MySQL中,CROSS JOIN在语法上等同于INNER JOIN;他们可以互相取代。但是在标准的SQL中,它们不是等价的。 INNER JOIN与ON子句一起使用;否则就使用CROSS JOIN。 通常,在仅包含内连接操作的连接表达式中可以忽略括号。 更确切地说,我们不能忽略left out join操作的右操作数和 right join 操作的左操作数中的括号。换句话说,我们不能忽略外连接操作的内部表表达式的括号。其他操作数的括号(外部表的操作数)可以忽略。 每当连接表达式(join_table)中的连接操作的执行顺序不是从左到右,我们认为存在嵌套连接。考虑以下查询: 在第一个查询中,嵌套连接由左连接操作构成。在第二个查询中, 嵌套连接 由一个内联接操作组成。 在第一个查询中,括号可以省略:连接表达式的语法结构将决定连接操作的执行顺序。对于第二个查询,不能省略括号,尽管这里的连接表达式可以毫无歧义地解释。但在我们的扩展语法中,第二个查询的(t2,t3)中的圆括号是必需的,尽管理论上查询可以在没有它们的情况下进行解析:我们仍然会为查询设置明确的语法结构,因为LEFT JOIN和ON扮演表达式(t2,t3)的左右分隔符。 文章来源: mysql优化之Nested Join Optimization

Linux三剑客--sed用法

匿名 (未验证) 提交于 2019-12-02 21:56:30
格式:   sed [OPTION]... {script-only-if-no-other-script} [input-file]... 常用选择:   i    :修改内容   i.bak  :先备份,然后再修改内容   r    :支持正则表达式   e    :支持多点编辑   n    :不输出模式空间内容到屏幕,即不自动打印 '地址定界+[高级]编辑命令'   地址定界      1.不给地址:       对全文进行处理      2.单地址:       #:指定的行 , $:最后一行       /pattern/:被此处模式所能够匹配到的每一行      3.地址范围       #,#       #,+#       /pat1/, /pat2/       #,/pat1/      4. ~:步进        1~ 2 奇数行        2~ 2 偶数行   编辑命令     d:删除模式空间匹配的行,并立即启用下一轮循环     p:打印当前模式空间内容,追加到默认输出之后     a[\]text:在指定行后面追加文本,支持使用\n实现多行追加     i[\]text:在行前插入文本     c[\]text:替换行为单行或多行文件     w /path/somefile:保存模式匹配的行至指定文件     r /path

java有效的括号

匿名 (未验证) 提交于 2019-12-02 21:52:03
题目: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 解题思路: 想象一下,你正在为你的大学课设编写一个小型编译器,编译器的任务之一(或称子任务)将检测括号是否匹配。 我们本文中看到的算法可用于处理编译器正在编译的程序中的所有括号,并检查是否所有括号都已配对。这将检查给定的括号字符串是否有效,是一个重要的编程问题。 我们这个问题中将要处理的表达式可以包含以下三种不同类型的括号: (), {} 以及 [] 在查看如何检查由这些括号组成的给定表达式是否有效之前,让我们看一下该问题的简化版本,在简化后的问题中,只含一种类型的括号。这么一来,我们将会遇到的表达式是 上我们试着用一个简单的算法来解决这一问题。 我们从表达式的左侧开始,每次只处理一个括号。 假设我们遇到一个开括号(即 (),表达式是否无效取决于在该表达式的其余部分的某处是否有相匹配的闭括号(即 ))。此时,我们只是增加计数器的值保持跟踪现在为止开括号的数目。left += 1 如果我们遇到一个闭括号,这可能意味着这样两种情况: 此闭括号没有与与之对应的开括号,在这种情况下,我们的表达式无效。当 left == 0,也就是没有未配对的左括号可用时就是这种情况。

try后面的小括号的作用--【Java7的又一个新特性】

匿名 (未验证) 提交于 2019-12-02 21:35:04
先看一下rabbitmq官方实例的代码 import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; public class Send { private final static String QUEUE_NAME = "hello"; public static void main(String[] argv) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) { channel.queueDeclare(QUEUE_NAME, false, false, false, null); String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message

动态规划:leetcode 32 最长有效括号

你离开我真会死。 提交于 2019-12-02 21:30:56
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 案例: 输入: ")()())" 输出:4 输入: "()(())" 输出:6 public int longestValidParentheses(String s) { //储存最大长度,返回 int max = 0; //状态数组,数组元素存储当前往前的括号有效的长度 int[] dp = new int[s.length()]; //循环,从第二个元素开始往前搜索解答,把结果储存在状态矩阵中 for (int i = 1; i < s.length(); i++) { //当当前的符号是 ')' ,这时候的括号往前是有效的,如果是'(',那么这时对应状态数组中存储为0,为无效括号 if (s.charAt(i) == ')') { //如果前一个符号为'(',那么当前的括号是有效的,最长有效括号长度为其前一个加2 if (s.charAt(i - 1) == '(') { dp[i] = (i >= 2 ? dp[i - 2] : 0) + 2;// 如果i>=2 那这时的dp应该为: dp[i] = dp[i-2] + 2 //如果前一个为')',则需要分情况, } else if (i - dp[i - 1] - 1 >= 0 && s.charAt(i - dp[i - 1] - 1)

()、(())、[]、[[]]、{}的作用

老子叫甜甜 提交于 2019-12-02 20:20:33
目录 单括号(): 单中括号[ ]: 双中括号[[]]: 大括号{}: Linux Shell脚本攻略:shell中各种括号()、(())、[]、[[]]、{}的作用 技巧小结: 字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格 快速替换用花括号{ }——左右留空格 反单引号起着命令替换的作用 单括号(): 另开命令组——小括号中的内容会开启一个子shell独立运行;括号中以分号连接,最后一个命令不需要;各命令和括号无空格 得到命令输出——a=$(command), 等同于a=$`command`,得到命令输出传递给变量a 初始化数组——array=(a b c d) 双括号(()): 省去$符号的算术运算—— for((i=0;i<5;i++)); if (($i<5)); a=5; ((a++)) 可将 $a 重定义为6;括号内支持多个表达式用逗号分开。 C语言规则运算——$((exp)),exp为符合C语言规则的运算符,表达式 跨进制运算——二进制、八进制、十六进制运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制) 单中括号[ ]: 字符串比较——==和!= 整数比较——不等于:-gt:大于;-lt :小于;-eq

Django--几个重要方法优化(面试重点)

泄露秘密 提交于 2019-12-02 19:19:40
查询优化(面试重点****) only与defer """ only的优化就是会将括号内的字段对应的值封装起来返回给你的对象中,只要你点了这个字段 就不需要再走数据库了 但是你要是点的不是括号内的字段,还是会频繁的走数据库的查询 defer则是相反,它是括号以外的字段对应的数据封装起来返回给你的对象中,只要你点了括号内的字段就会频繁的走数据库查询,但是点括号内以外的字段,就不会频繁走数据库查询 """ res = models.Book.objects.only('name') for r in res: print(r.name) res = models.Book.objects.defer('name') for r in res: print(r.name) #频繁走数据库查询 select_related和prefetch_related 代码 图片 select: https://images2018.cnblogs.com/blog/1342004/201807/1342004-20180707190651556-702396876.png prefetch: https://images2018.cnblogs.com/blog/1342004/201807/1342004-20180707192517858-1910038173.png ==性能对比==:

leetcode 20.有效的括号

谁说我不能喝 提交于 2019-12-02 14:48:40
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true 就是一个栈的问题,简单。它的问题在于哪里?就是它不能进行嵌套,就是([)]这样,这样不行,因此必须用一个栈才行。 class Solution { public: bool isValid(string s) { int n = s.size(); char *stack = new char[n]; int s_n = 0; for(int i=0; i<n; i++){ if(s[i] == '('){ stack[s_n++] = '('; } if(s[i] == '['){ stack[s_n++] = '['; } if(s[i] == '{'){ stack[s_n++] = '{'; } if(s[i] == ')'){ if(s_n-1>=0 && stack[s_n-1]=='(') s_n-