括号

(转载)命令行说明中格式 尖括号 中括号的含义

 ̄綄美尐妖づ 提交于 2020-04-05 19:40:55
[] :内的内容意思是:可写可不写 例如:/home下就一个list 文件,使用ls --help中的 Usage: ls [OPTION]… [FILE]… {} :那就必须要在{}内给出的选择里选一个。 <> :表示必选 命令行语法字符在命令行语法中,某些字符与格式有着特殊的意义与含义。 本文档中的命令行语法使用以下字符格式: 方括号 [ ] 方括号 ( [ ] ) 表示里面的元素(参数、值或信息)是可选的。 您可以选择一个或多个条目,也可以不选。 不要将方括号本身也输入到命令行中。 示例:[global options]、[source arguments]、[destination arguments] 1 尖括号 < > 尖括号 ( < > ) 表示里面的元素(参数、值或信息)是必需的。 您需要用相应的信息来替换尖括号里面的文本。 不要将尖括号本身也输入到命令行中。 示例:-f <file name>、-printer <printer name>、-repeat <months> <days> <hours> <minutes>、date access <mm/dd/yyyy> 1 斜体 斜体文本表示您必须通过相应的值提供的信息。 它是一个要用值来替换的选项或参数。 示例:-sessionpassword session password、-f <file name>、

20. 有效的括号

非 Y 不嫁゛ 提交于 2020-04-04 18:03:32
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true class Solution { public boolean isValid(String s) { Stack<String> stack = new Stack<>(); for(int i = 0; i < s.length(); i++) { String tmp = String.valueOf(s.charAt(i)); if(tmp.equals("(") || tmp.equals("[") || tmp.equals("{")) { stack.push(tmp); } else { if(stack.isEmpty()) { return false; } String str = stack.peek(); if(str.equals("(") && tmp.equals(")")) {

HDU 1427 速算24点【数值型DFS】

允我心安 提交于 2020-03-30 09:30:02
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2562 Accepted Submission(s): 606 Problem Description 速算24点相信绝大多数人都玩过。就是随机给你四张牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13)。要求只用'+','-','*','/'运算符以及括号改变运算顺序,使得最终运算结果为24(每个数必须且仅能用一次)。游戏很简单,但遇到无解的情况往往让人很郁闷。你的任务就是针对每一组随机产生的四张牌,判断是否有解。我们另外规定,整个计算过程中都不能出现小数。 Input 每组输入数据占一行,给定四张牌。 Output 每一组输入数据对应一行输出。如果有解则输出"Yes",无解则输出"No"。 Sample Input A 2 3 6 3 3 8 8 Sample Output Yes No 【分析】: 简单的DFS,dfs(sum,next,p)表示当前已经算出的值是sum,括号中算出的值是next,当前使用的卡片下标为p,实际上是把括号外和括号内的两部分值分成sum和next来处理了。

大家都懂的 JSON 解析器原理(一)简介 & 低配版入门

一曲冷凌霜 提交于 2020-03-28 17:41:51
没学过编译原理,做一个 JSON 解析器难吗?——难!是不是就不能“迎难而上”呢?——不是!越是难的越是一个挑战!——笔者这里尝试通过通俗易懂的行文为大家介绍一下 JSON 解析器,——那一串串长长的 JSON 文本到底是如何被解析成为 Java 里面“可以理解的”对象的。前面的铺垫可能比较长,但请尽量不要跳过,因为那都是基础,尤其对于我们非科班来说,应要恶补。当然,为照顾大家的理解程度(包括我自己,我也会以后回看自己的代码,以此反复理解、反复消化),我会把代码写多点注释,把代码可读性提高那么一点点,因为网上很多写解析器的大神都是从 C 语言高手过来的,明显带有过程式的风格。因此我会重构这些代码,使得代码更 OO 一些,这样看起来也会紧凑一些,可读性高一些。 目标 输入 JSON 字符串,对象或数组相互嵌套着,如: { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type":

921.使括号有效的最少添加

萝らか妹 提交于 2020-03-27 23:21:32
给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。 从形式上讲,只有满足下面几点之一,括号字符串才是有效的: 它是一个空字符串,或者 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者 它可以被写作 (A),其中 A 是有效字符串。 给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。 示例 1: 输入:"())" 输出:1 示例 2: 输入:"(((" 输出:3 示例 3: 输入:"()" 输出:0 示例 4: 输入:"()))((" 输出:4 提示: S.length <= 1000 S 只包含 '(' 和 ')' 字符。 用left来记录不能匹配的左括号,right记录不能匹配的右括号。 如果先出现左括号,left+1。 出现右括号的话,有两种情况,存在没有匹配的左括号,那么left-1,right不变。如果左括号全都匹配或者没有出现,right+1。 返回值是left+right。 class Solution { public int minAddToMakeValid(String S) { int left = 0; int right = 0; for(int i = 0; i < S.length(); i++) { if

数据结构与算法(6)——栈Stack

我们两清 提交于 2020-03-26 02:29:11
基础定义 什么是栈: 栈是一种有次序的数据项集合。在栈中,数据项的加入和移除都仅仅发生在同一端,这一端叫栈顶(top),没有操作的另一端叫栈底(base)。 特性: 后进先出,先进后出 栈的基本操作 这里需要知道在python里面是没有栈的,但是我们可以模拟一个栈。 首先我们需要定义的一些栈的基本操作: Stack() 创建一个空栈,不包含任何数据项 push(item) 将item加入栈顶,无返回值 pop() 将栈顶数据项移除,并返回,栈被修改 peek() 查看栈顶数据项,返回栈顶数据项但不移除,且不修改栈 isEmpty() 返回栈是否为空 size() 返回栈中有多少个数据项 这里,我们可以用list类型实现一个栈的操作: 1 class Stack: 2 ''' 3 自己定义的一个栈 4   栈顶是尾端,也可以将栈顶设为尾端 5 ''' 6 def __init__(self): 7 self.items =[] 8 def isEmpty(self): 9 return self.items==[] 10 def push(self,item): 11 self.items.append(item) 12 def pop(self): 13 self.items.pop() 14 def peek(self): 15 return self.items[len

栈的应用:P6 括号匹配 (15分)

心不动则不痛 提交于 2020-03-25 22:26:02
题目描述: P6 括号匹配 (15分) 检查一段C语言代码的小括号 ( ) 、 中括号 [ ] 和大括号 { } 是否匹配。 输入格式: 在一行中输入一段C语言代码,长度不超过1000个字符(行末以换行符结束)。 输出格式: 第一行输出左括号的数量和右括号的数量,中间以一个空格间隔。 若括号是匹配的,在第二行打印 YES ,否则打印 NO 。 输入样例1: for(int i=0; i<v; i++){ visited[i] = 0; for(int j=0; j<v; j++) scanf("%d",&(g->Adj[i][j])); } 输出样例1: 8 8 YES 输入样例2: for(int i=0; i<v; i++) a(i]=0; 输出样例2: 2 2 NO 一道比较简单的栈的应用题 但要着重考虑到会出现的两种情况:(1)输入中只有左括号 (2)输入中只有右括号 (3)俩都没有 两种判断方式:判断左括号数是否和右括号数相等,或判断最后stack(栈)内是否为空 c++代码如下: #include<iostream> #include<string> #include<stack> using namespace std; int main() { stack<char> str2; char str[1200]; int t = 1; //用t来判断括号匹配 cin

使用python开发一个能够计算带括号的复杂表达式的计算器(只支持加减乘除)

对着背影说爱祢 提交于 2020-03-24 23:13:32
使用到了模块re,正则,字典等 # 实现简单的加减乘除括号等运算 # Calculator def calculator(expression): print(expression) import re # 操作字典,目前只支持加减乘除 operatorDict ={ '+': lambda a, b: float(a)+float(b), '-': lambda a, b: float(a)+float(b), '*': lambda a, b: float(a)+float(b), '/': lambda a, b: float(a)+float(b), } # 计算去括号后表达式的值 def calBrackets(expre): for i in operatorDict: expre = expre.replace(i, 's'+i+'s') l = expre.split('s') # 表达式转化为数字运算符列表 # 将-和数字组合在一起 l2, i = [], 0 while i < len(l): # 处理负数 if l[i] == '': # 负号开头或者负号与其他运算符连在一起,splite后会为'',例如 -5*-2 ['','-','5','*','','-','2'] l2.append(l[i+1]+l[i+2]) # 将符号和数字合一起 -2 i +=

算法-有效的括号匹配(php&golang)

被刻印的时光 ゝ 提交于 2020-03-24 17:40:58
3 月,跳不动了?>>> 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true //解题思路主要考虑的是用到栈数据结构,后进先出,自己可以画图试试 PHP function isValid($s) { //声明两个数组,一个存左括号 $left = []; $isNot = ['()', '{}', '[]']; for ($i=0; $i < strlen($s); $i++) { if (in_array($s[$i], ['(', '{', '['])) { array_push($left, $s[$i]); } else { //右括号 $l = array_pop($left); if (!in_array($l . $s[$i], $isNot)) { //这里要重新入栈 array_push($left, $l); break; } } } if (

LeetCode.20 | 有效的括号

折月煮酒 提交于 2020-03-21 10:18:05
3 月,跳不动了?>>> ''' 思路:这是比较简单,用列表模拟栈;写的比简复杂 1.判断字符是在左括号列表中([{,直接堆入栈; 2.判断在右括号列表中([{,栈顶字符弹出,并和当前字符相比较 3.字符循环结果,并且比较值isMatch=True 4.最后判断栈stack是否是空,匹配完成,栈为空 注意:剪枝:成对的话字符长度除%2没有余数 空字符串返回True ''' def isValid(s): if len(s)==0:return True if not len(s)%2==0:return False #有效括号总是成对出现 isMatch=True #初始化匹配值 left="([{" #左括号集 right=")]}" #右括号集 stack=[] #初始化栈 i=0 #字符指针 while isMatch and i<len(s): #循环字符列表 chr=s[i] #当前字符 if chr in left: #是左括号 stack.append(chr) #字符入栈 elif chr in right and len(stack)>0: #是右括号 left_chr=stack.pop() #栈顶弹出>左括号 left_i=left.index(left_chr) right_i=right.index(chr) if left_i==right_i: