【问答题】【4.3 函数的递归】【程序编写题】 扩号匹配问题 总时间限制: 1000ms 内存限制: 65536kB 描述 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注. 输入 输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母, 字符串长度不超过100 注意:cin.getline(str,100)最多只能输入99个字符! 输出 对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。 样例输入 ((ABCD(x))(rttyy())sss)( 样例输出 ((ABCD(x)$$)(rttyy())sss)(? ?$ 提示 输入多行数据需要使用while(cin.getline(...))来处理,cin.getline以及
举一反三
- 使用栈判断括号串是否匹配,当读入左括号时应,算法结束时,若栈,则括号串是匹配的
- 下面程序的功能是:从输入的一行字符串中求出最长英文单词长度及最长单词个数,并输出长度和个数,单词之间只能用一个或多个空格隔开。如输入字符串”I am a student”时,最长单词的长度为7,个数为1。而输入字符串”word body book try”时,最长单词的长度为4,个数为3,即有三个单词均为最长单词。3.写一函数检查给定的字符串左括号‘(’和右括号‘)’的使用是否合法。分别条件是:左括号‘(’的个数应与右括号‘)’的个数相同;右括号的个数在任何时候均不得超过左括号‘(’的个数;若字符串同时满足上述两个条件,函数返回值1,否则返回值0。
- 在括号匹配问题中,若读入的字符是左括号,则将其压入栈。
- C语言输出一个字符的函数是( )。(用小写输入函数名,无需写括号)
- 正则表达式中的“\^”符号,用在一对中括号中表示要匹配____________ A: 字符串的开始 B: 除中括号内的其他字符 C: 字符串的结束 D: 仅中括号内含有的字符