精华内容
下载资源
问答
  • 括号匹配问题

    2016-04-10 13:33:44
    假设表达式允许包含3种括号:圆括号,方括号大括号。设计一个算法采用顺序栈判断表达式括号是否正确配对。
  • 在使用python做项目的过程中发现这种语言使用了很多种类型的括号来表达数据类型,常见的有四种,分别是:小括号( )、中括号[ ]和括号,也叫做花括号{ },还有尖括号<>,其作用也各不相同,分别用来代表不同...

    在使用python做项目的过程中发现这种语言使用了很多种类型的括号来表达数据类型,常见的有四种,分别是:小括号( )、中括号[ ]和大括号,也叫做花括号{ },还有尖括号<>,其作用也各不相同,分别用来代表不同的python基本内置数据类型。

    1、python中的小括号( ):代表tuple元组数据类型,元组是一种不可变序列。创建方法很简单,大多时候都是用小括号括起来的。

    >>> tup = (1,2,3,4)    
    >>> tup    
    (1, 2, 3, 4)    
    >>>    
    >>> ()#空元组    
    ()    
    >>>     
    >>> 66,#一个值的元组    
    (66,)

    2、python中的中括号[ ]:代表list列表数据类型,列表是一种可变的序列。其创建方法即简单又特别,像下面一样:

    >>> list('usepython')    
    ['u', 's', 'e','p', 'y', 't', 'h', 'o', 'n']

    3、python大括号{ }花括号:代表dict字典数据类型,字典是由键对值组组成。冒号':'分开键和值,逗号','隔开组。用大括号创建的方法如下:

    >>> dic={'john':'boy','lily':'girl'}    
    >>> dic    
    {'lily': 'girl', 'john': 'boy'}    
    

    4.python的中括号<>表示的是一个set集合,只需要用for循环来访问就可以了,结果就是具体的内容了,如下:

    b=[<redminelib.Issue #13333 "打开充值面板失败">, <redminelib.Issue #13334 "分享至QQ失败">]
    for a in b
    print(a)
    展开全文
  • 《数据结构,算法及应用》 zhangxianchao P80 13题
  • C语言小括号改变运算顺序

    千次阅读 2020-08-29 20:32:34
    在数学运算,我们可以通过“小括号()”来改变运算的顺序,这个方法,在C语言同样适用,测试例子如下: 程序运行结果如下: 可以看到,我们通过小括号,把 1 + 2 * 5改为 (1 + 2)*5运算,那么,就...

    在数学运算中,我们可以通过“小括号()”来改变运算的顺序,这个方法,在C语言中同样适用,测试例子如下:

     

    程序运行结果如下:

     

    可以看到,我们通过小括号,把 1 + 2 * 5改为 (1 + 2)*5运算,那么,就优先运算小括号里面的操作。

    更多的交流可以访问:www.mylinux.vip   加QQ:1523520001,微信:13926572996,备注:linux编程;
    学习、分享更多的linux C/C++ 编程知识。

    展开全文
  • 在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本内置数据类型。 1、Python中的小括号(): 代表tuple元祖数据类型,元祖是一种不可变...
  • 假设一个算术表达式可以包含三种括号:园括号...编写判别给定表达式所含括号是否正确配对出现的算法(已知表达式已存入数据元素为字符的顺序)。要求:顺序栈存储;实现顺序栈的基本操作;调用基本操作完成。
  • 设计一个算法采用顺序栈判断表达式括号是否正确配对。
  • 栈的应用 stack <char> Q; char s[11000]; int main() { int T,i; Q.push('#'); scanf("%d",&T); while(T--) { scanf("%s",s); int len=strlen(s); ...

     

    栈的应用

     

     

    stack <char> Q;
    char s[11000];
    int main()
    {
        int T,i;
        Q.push('#');
        scanf("%d",&T);
        while(T--)
        {
            scanf("%s",s);
            int len=strlen(s);
                for(i=0;i<len;i++)
                {
                    if(s[i]!='['&&s[i]!='('&&s[i]!=']'&&s[i]!=')'&&s[i]!='{'&&s[i]!='}')
                        continue;
                    if(s[i]=='[' || s[i]=='('||s[i]=='{')
                        Q.push(s[i]);
                    else if((s[i]==']' && Q.top()=='[') || (s[i]==')' && Q.top()=='(')||(s[i]=='}' && Q.top()=='{'))
                        Q.pop();
                    else
                        Q.push(s[i]);
                }
                if(Q.top()=='#')
                    printf("Yes\n");
                else
                    printf("No\n");
                while(Q.top()!='#')
                    Q.pop();
            
        }
        return 0;
    }

     

     

     

     

     

    展开全文
  • 最近学到了shell脚本编程,觉得脚本的不同括号有不同的用处,...一、小括号();双小括号(()) &nbsp; 1、单小括号 () &nbsp; &nbsp; 1:命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm...

    最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。

    一、小括号();双小括号(())

      1、单小括号 ()

        1:命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm)结构,便将$(comm)中的comm执行一次,得到其标准输出,再将此输出放到原来命令。

    
     
    1. # ls
    2. a b c
    3. # echo $(ls)
    4. a b c
    5. #echo `ls`
    6. a b c

        2:用于初始化数组。如:array=(a b c d)

    
     
    1. [root@localhost ~] # array=(a b c d)
    2. [root@localhost ~] # declare -a
    3. declare -a array= '([0]="a" [1]="b" [2]="c" [3]="d")'

      2、双小括号 (())
    ((表达式))常用于算术运算比较,双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。 只要括号中的表达式符合C语言运算规则,比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。

    
     
    1. #求100以内的偶数
    2. #! /bin/bash
    3. num=2
    4. while ((num<100)) #数值与运算符可以没有空格,变量的使用时也可以不使用$num
    5. do
    6. echo "$num"
    7. ((num=num*2))
    8. done

    二、中括号[ ];双中括号[[ ]]

    1:单中括号[ ]

    1:算术比较, 比如一个变量是否为0, [ $var -eq 0 ]

    
     
    1. [ $var1 - ne 0 -a $var2 - gt 2 ] # 使用逻辑与 -a
    2. [ $var1 - ne 0 -o $var2 - gt 2 ] # 使用逻辑或 -o

    对变量或值进行算术条件判断:

    
     
    1. [ $var -eq 0 ] # 当 $var 等于 0 时,返回真
    2. [ $var - ne 0 ] # 当 $var 不等于 0 时,返回真

    需要注意的是 [ 与 ] 与操作数之间一定要有一个空格,否则会报错。比如下面这样就会报错:

    [$var -eq 0 ]  或 [ $var -ne 0] 
     

    其他比较操作符:

    操作符意义
    -gt大于
    -lt小于
    -ge大于或等于
    -le小于或等于

    可以通过 -a (and) 或 -o (or) 结合多个条件进行测试:

    
     
    1. [ $var1 - ne 0 -a $var2 - gt 2 ] # 使用逻辑与 -a
    2. [ $var1 - ne 0 -o $var2 - gt 2 ] # 使用逻辑或 -o

    2:文件属性测试,比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ]

    文件系统属性测试

    使用不同的条件标志测试不同的文件系统属性。

    操作符意义
    [ -f $file_var ]变量 $file_var 是一个正常的文件路径或文件名 (file),则返回真
    [ -x $var ]变量 $var 包含的文件可执行 (execute),则返回真
    [ -d $var ]变量 $var 包含的文件是目录 (directory),则返回真
    [ -e $var ]变量 $var 包含的文件存在 (exist),则返回真
    [ -c $var ]变量 $var 包含的文件是一个字符设备文件的路径 (character),则返回真
    [ -b $var ]变量 $var 包含的文件是一个块设备文件的路径 (block),则返回真
    [ -w $var ]变量 $var 包含的文件可写(write),则返回真
    [ -r $var ]变量 $var 包含的文件可读 (read),则返回真
    [ -L $var ]变量 $var 包含是一个符号链接 (link),则返回真

    使用方法如下:

    
     
    1. fpath= "/etc/passwd"
    2. if [ -e $fpath ]; then
    3. echo File exits;
    4. else
    5. echo Does not exit;
    6. fi

        3:字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。

    
     
    1. [root@localhost ~] # echo 1234abcdef |tr -cd "[0-9]"
    2. 1234[root@localhost ~] # cat 1.txt|grep "[0-9]"
    3. 123
    4. 135
    5. 1244
    6. 156
    7. 222
    8. 178
    9. 189999
    10. 12gg
    11. [root@localhost ~] #

        4:在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号

    
     
    1. [root@localhost ~] # echo ${name[2]}
    2. durank
    3. [root@localhost ~] #

    2:双中括号 [[ ]]

    [[ ]] 多用来进行字符串比较, 比如两个字符串是否相同, [[ $var1 == $var2 ]]

    注意 = 前后有一个空格,如果忘记加空格, 就变成了赋值语句,而非比较关系了。

    字符串的其他比较情况:

    操作符意义
    [[ $str1 != $str2 ]]如果 str1 与 str2 不相同,则返回真
    [[ -z $str1 ]]如果 str1 是空字符串,则返回真
    [[ -n $str1 ]]如果 str1 是非空字符串,则返回真

    使用逻辑运算符 && 和 || 可以轻松地将多个条件组合起来, 比如:

    
     
    1. str1= "Not empty"
    2. str2= ""
    3. if [[ -n $str1 ]] && [[ -z $str2 ]];
    4. then
    5. echo str1 is nonempty and str2 is empty string.
    6. fi

    test 命令也可以从来执行条件检测,用 test 可以避免使用过多的括号,[] 中的测试条件同样可以通过 test 来完成。

    if [ $var -eq 0 ]; then echo "True"; fi
     

      等价于

    if test $var -eq 0; then echo "True"; fi
     

    三:大括号{ }

    常规用法

    1:大括号拓展。在大括号中,不允许有空白,除非这个空白被引用或转义。

    第一种:对大括号中的以逗号分割的文件列表进行拓展。

    第二种:对大括号中以点点(..)分割的顺序文件列表起拓展作用,

    
     
    1. # ls {ex1,ex2}.sh
    2. ex1.sh ex2.sh
    3. # ls {ex{1..3},ex4}.sh
    4. ex1.sh ex2.sh ex3.sh ex4.sh
    5. # ls {ex[1-3],ex4}.sh
    6. ex1.sh ex2.sh ex3.sh ex4.sh

    2:字符串提取和替换

    ${var:num},${var:num1:num2},${var/pattern/pattern},${var//pattern/pattern}

    第一种模式:${var:num},这种模式时,shell在var中提取第num个字符到末尾的所有字符。若num为正数,从左边0处开始;若num为负数,从右边开始提取字串,但必须使用在冒号后面加空格或一个数字或整个num加上括号,如${var: -2}、${var:1-3}或${var:(-2)}。
    第二种模式:${var:num1:num2},num1是位置,num2是长度。表示从$var字符串的第$num1个位置开始提取长度为$num2的子串。不能为负数。  

    第三种模式:${var/pattern/pattern}表示将var字符串的第一个匹配的pattern替换为另一个pattern。

    第四种模式:${var//pattern/pattern}表示将var字符串中的所有能匹配的pattern替换为另一个pattern。

     

    
     
    1. [ root@centos ~]# var=/home/centos
    2. [ root@centos ~]# echo $ var
    3. /home/centos
    4. [ root@centos ~]# echo ${ var: 5}
    5. /centos
    6. [ root@centos ~]# echo ${ var: -6}
    7. centos
    8. [ root@centos ~]# echo ${ var:( -6)}
    9. centos
    10. [ root@centos ~]# echo ${ var: 1: 4}
    11. home
    12. [ root@centos ~]# echo ${ var/o/h}
    13. /hhme/centos
    14. [ root@centos ~]# echo ${ var //o/h}
    15. /hhme/cenths

    字符大小写转换
    ${var^^}:把var中的所有小写字母转换为大写
    ${var,,}:把var中的所有大写字母转换为

    展开全文
  • 表达式有几个()就有几个相应的匹配字符串。 (\s*)表示连续的空格、制表符、其他空白。 []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。 {}一
  • shell中的括号(小括号中括号括号) linux中的(),(()),[],[[]],{}的作用 博客转载自 http://www.cnblogs.com/yasmi/articles/5129571.html 一、小括号,园括号() 1、单小括号 () ①命令组。括号中的命令将会...
  • 在Python语言中最常见的括号有三种,分别是:小括号()、中括号[ ]、花括号{ };其作用也不相同,分别用来代表不同的Python基本内置数据类型。 小括号() Python中的小括号(): 代表tuple元祖数据类型,元祖是一种...
  • shell中的括号(小括号中括号括号)

    万次阅读 多人点赞 2013-09-16 17:39:20
    括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。  ②命令替换。等同于`cmd`,...
  • 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,...
  • 假设表达式中允许包含3中括号:圆括号、方括号和括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。 用例1: 假设输入为: {1*[3*2+(2-1)]} 则输出为: 匹配正确! 用例2: 假设输入为: {}{()()()[]...
  • 而且()还用于括起正则表达式的小组,比如:^(a|b).$匹配以a或b开头的任何字符串 另外,(?:pattern)是一个非捕获匹配,就是匹配但不捕获字符串 (?&lt;=pattern)逆序肯定环视,表示所在位置左侧能够匹配pattern (?...
  • https://blog.csdn.net/hanjieson/article/details/8885206... 正则表达式的() [] {}有不同的意思。 () 是为了提取匹配的字符串。表达式有几个()就有几个相应的匹配字符串。 (\s*)表示连续空格的字符串。 []是...
  • 中括号表示。需要按照顺序传递参数。 括号表示可以不按照顺序传递参数。 必须传递参数可以使用requeir装饰
  • 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。  ②命令替换。等同于`cmd`,...
  • 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。  ②命令替换。等同于`cmd`,...
  • Python中小括号中括号、花括号的区别介绍小括号()示例中括号[]示例花括号{}示例 介绍 在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本...
  • shell脚本各种括号的区别以及用法

    千次阅读 2018-08-19 14:55:33
    一、小括号();双小括号(())  1、单小括号 ()  1:命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm)结构,便将$(comm)的comm执行一次,得到其标准输出,再将此输出放到原来命令。 # ls a b c ...
  • 顺序栈判断表达式的括号是否匹配
  • 数据结构上机作业。数据结构张宪超第二章13题。 假设表达式允许包含3种括号:圆括号,方括号大括号。设计算法采用顺序栈判断表达式括号是否正确配对。
  • /************************ author's email:...date:2018.1.1 顺序栈及其应用(括号匹配) ************************/ #include <iostream> using namespace std; #define maxSize 50 typedef struct...
  • 假设表达式允许包含3种括号:圆括号、方括号大括号。设计一个算法采用顺序栈判断表达式括号是否正确匹配。 解题 基本思路如下:实例化一个字符栈,维持一个bool变量flag,初始化为true。然后遍历整个...
  • 大家猜猜我这段时间都干啥了哇!没错,参加学校的生产实习啦歪!每天自己PUA自己写代码:你这么菜,还不认真敲代码?(狗头) 一开始死命的纠结到底水一水实训还是认真搞哇!!最后还是选择踏踏实实搞实训得了,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 205,918
精华内容 82,367
关键字:

去大括号中括号小括号的顺序