- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、编程题
1、波兰表达式
波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2+
3的波兰表示法为+2
3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次
序,例如(2+3)*4的波兰表示法为*+23
4。本题求解波兰表达式的值,其中运算符包括+-*/四个。
时间限制:1000
内存限制:65536
输入
输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
输出
输出为一行,表达式的值。可直接用printf(“%f\n”,v)输出表达式的值v。
样例输入
*+11.012.0+24.035.0
样例输出
1357.000000
参考答案:
无
解析:【喵呜刷题小喵解析】该题目要求计算波兰表达式的值。波兰表达式是一种
把运算符前置的算术表达式,例如普通的表达式2+3的波兰表示法为+2
3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次
序。本题中,运算符包括+、-
、*、/四个。输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点
数。输出为一行,表达式的值。在C语言中,我们可以使用scanf函数来读取输入,
使用switch语句来处理不同的运算符。对于除法运算,需要特别处理除数为0的情
况。最后,使用printf函数输出表达式的值。在上面的代码中,我们首先定义了一
些变量,包括运算符op,两个运算数num1和num2,以及结果变量result。然后,使
用while循环来读取输入,直到没有输入为止。在循环中,使用scanf函数读取一个
字符和两个浮点数,如果读取成功,就使用switch语句来处理不同的运算符。最后
,使用printf函数输出计算结果。需要注意的是,在计算除法时,需要特别处理除
数为0的情况,否则会导致程序崩溃。另外,如果输入的运算符不是+、-
、*、/之一,程序会输出错误信息并退出。
2、括号配对
字符串中可能有三种成对的括号,“()”、“[]”、“{
}”。请判断字符串的括号是否都正确配对。无括号也算正确配对。括号交叉算不正
确配对,例如12{34[78}ab]“就不算正确配对。但是一对括号被包含在另一对括号
里面,例如12{ab[8]}“不影响正确性。
时间限制:1000
内存限制:65536
输入
第一行为整数n(n40),接下来有n行,每行一个无空格的字符串,长度小于1000。
输出
对每行字符串,如果括号配对,输出YES”,否则输出NO”。
样例输入
2
12{ab[8]}
12{34[78}ab]
样例输出
YES
NO
参考答案:
无
解析:【喵呜刷题小喵解析】:本题要求判断字符串的括号是否都正确配对。可以
使用栈来解决这个问题。遍历字符串中的每个字符,如果字符是左括号,则将其压
入栈中;如果字符是右括号,则检查栈顶元素是否与其匹配,如果匹配,则弹出栈
顶元素,否则说明括号不匹配,输出NO。如果遍历结束后栈为空,则说明所有
括号都正确配对,输出YES;否则说明括号不匹配,输出NO。在Python中,可
以使用列表来模拟栈,使用append()方法将元素压入栈中,使用pop()方法将栈顶元
素弹出。在判断括号是否匹配时,可以使用字典来存储每个左括号对应的右括号,
以便快速查找。具体实现时,首先读入整数n,表示有n行字符串需要判断。然后对
于每行字符串,使用栈来存储左括号,遍历字符串中的每个字符,根据字符类型进
行相应的操作。最后根据栈是否为空来判断括号是否匹配,并输出相应的结果。
3、扑克牌排序
假设这里有36张扑克牌,分别为A1~A9,B1~B9,C1~C9,D1~D9,其中A代表方片,B
代表草花,C代表红桃,D代表黑桃,那么,设定如下的排序规则:
1.对于两张卡牌,X1Y1与X2Y2,X1与X2表示A~D,Y1与Y2表示1~9,如果X1
与X2不同,那么依照DCBA的方式进行排序
2.假如有X1与X2相同时,那么就比较Y1与Y2的大小。
例如,对于如下的四张牌,有如下的升序排序结果:
D3,C4,A4,C1
升序排序的结果为A4,C1,C4,D3
有人提出了如下的排序策略:
先建立9个队列,用于存放点数的大小,将卡牌依点数存放入各自的队列之中,然
后再按队列1到队列9依次出队。
例如,对于上面的结果,依次进队后,结果如下:
队列1:C1;队列3:D3,队列4:C4,A4
将其依次出队后,结果为C1
原创力文档


文档评论(0)