摘要: 括号匹配(二)时间限制:1000 ms | 内存限制:65535 KB难度:6描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100输出对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行样例输入4 阅读全文
posted @ 2012-04-16 23:37 mtry 阅读(2050) 评论(0) 推荐(1)
摘要: 字符串的输入的主流函数:一、scanf(); 二、cin; 三、gets(); 四、getline(); 五、sscanf()。一、scanf("%s",str);遇见空格或换行就停止。#include<stdio.h>int main(){ char str[100]; while(true) {scanf("%s",str); printf("%s\n",str);} return 0;}输入:123 456输出:123 456二、cin>>str;与scanf();相似遇见空格或换行就停止;以文件结束。三 阅读全文
posted @ 2012-04-16 15:01 mtry 阅读(5282) 评论(2) 推荐(2)
摘要: 前缀式计算时间限制:1000 ms | 内存限制:65535 KB难度:3描述先说明一下什么是中缀式:如2+(3+4)*5这种我们最常见的式子就是中缀式。而把中缀式按运算顺序加上括号就是:(2+((3+4)*5))然后把运算符写到括号前面就是+(2 *( +(3 4) 5) )把括号去掉就是:+ 2 * + 3 4 5最后这个式子就是该表达式的前缀表示。给你一个前缀表达式,请你计算出该前缀式的值。比如:+ 2 * + 3 4 5的值就是 37输入有多组测试数据,每组测试数据占一行,任意两个操作符之间,任意两个操作数之间,操作数与操作符之间都有一个空格。输入的两个操作数可能是小数,数据保证输入的 阅读全文
posted @ 2012-04-16 14:11 mtry 阅读(1895) 评论(0) 推荐(0)
摘要: 最长公共子序列时间限制:3000 ms | 内存限制:65535 KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。输入第一行给出一个整数N(0<N<100)表示待测数据组数接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.输出每组测试数据输出一个整数,表示最长 阅读全文
posted @ 2012-04-16 09:41 mtry 阅读(484) 评论(0) 推荐(0)