数据结构与算法实战
周强(青岛大学)
SYaoJun
这个作者很懒,什么都没留下…
展开
-
P10 推断学生所属学校的人数 (15 分)
PTA题目链接并查集求并查集的集合数量,以及所有集合中数量最大的值。#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include <unordered_map>using namespace std;const int ...原创 2019-11-04 13:32:14 · 1176 阅读 · 0 评论 -
后缀式求值 (25 分)
exp=input().split()ls=list()def Cal(a,b,i): if i=="+": return a+b elif i=="-": return a-b elif i=="*": return a*b else: return a/bfor i in exp: if i in "+-*/": a=ls.pop() b=ls.po...原创 2019-10-20 20:14:54 · 2121 阅读 · 0 评论 -
P2 九宫格输入法 (15 分)
假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ] [ 8TUV ] [ 9WXYZ ] [ 0空 ]注意: 中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,...原创 2019-09-25 13:28:59 · 664 阅读 · 0 评论 -
P8 叶节点求和 (15 分)
对给定的有N个节点(N>=0)的二叉树,求叶节点元素之和。输入格式:第一行是一个非负整数N,表示有N个节点第二行是一个整数k,是树根的元素值接下来有N-1行,每行是一个新节点,格式为 r d e 三个整数,r表示该节点的父节点元素值(保证父节点存在);d是方向,0表示该节点为父节点的左儿子,1表示右儿子;e是该节点的元素值。输出格式:树中叶节点元素之和 (保证在整型变量范围之内...原创 2019-09-23 21:38:49 · 1222 阅读 · 0 评论 -
P9 中序遍历树并判断是否为二叉搜索树 (15 分)
对给定的有N个节点(N>=0)的二叉树,给出中序遍历序列,并判断是否为二叉搜索树。题目保证二叉树不超过200个节点,节点数值在整型int范围内且各不相同。输入格式:第一行是一个非负整数N,表示有N个节点第二行是一个整数k,是树根的元素值接下来有N-1行,每行是一个新节点,格式为r d e 三个整数,r表示该节点的父节点元素值(保证父节点存在);d是方向,0表示该节点为父节点的左儿...原创 2019-09-23 21:32:27 · 1713 阅读 · 3 评论 -
F4 数组逆转 (10 分)
本题要求实现一个函数,可将一个整型数组里的元素逆转。例如原数组是[1,3,5,7,9],逆转之后变成[9,7,5,3,1]函数接口定义:void reverse(int *array, int size);其中参数 array是数组首地址,size是数组的长度(size>0)。裁判测试程序样例:函数被调用进行测试的一个可能的例子像这样:#include <stdio.h&...原创 2019-09-20 09:20:20 · 3086 阅读 · 0 评论 -
F3 查找数组元素最大值 (10 分)
本题要求实现一个函数,查找数组中最大元素的下标。例如数组为{1,3,5,7,9},则该函数应该返回4。题目输入保证数组元素各不相同。函数接口定义:int indexOfMax(int *array, int size);其中 array 和 size 是用户传入的参数。 array 是数组首地址; size 是数组元素的个数。函数须返回数组中最大元素的下标(从0开始)。裁判测试程序样例:...原创 2019-09-20 09:10:07 · 4651 阅读 · 2 评论 -
F2 判断回文 (10 分)
如果一串字符从左至右读和从右至左读相同,那么这串字符就是回文(Palindrome)。例如,ABCBA是回文,而ABCD则不是。本题要求编写一个判断字符串是否为回文的函数,并且通过函数参数获取字符串的中间字符(如果中间是两个字符,则获取靠左的那一个,例如字符串是ABCDEF,则中间字符是C)。题目保证输入的字符串长度在1至2000之间且不含空格、换行等分隔符。函数接口定义:int isPali...原创 2019-09-20 09:08:53 · 690 阅读 · 0 评论 -
F1 提桶寻宝 (10 分)
F1 提桶寻宝 (10 分)给你准备好一个小桶,告诉你一片广袤的天地,随手一指,挖宝去吧~说计算机话!好吧,题目是这样的:假设一个二维区域内藏有财宝,对于给定的此前寻到的财宝数量以及坐标(x,y),按照以下规则在该位置寻回财宝,并更新财宝数量。规则:如果x、y均为奇数,则获得原有三分之一数量的财宝,小数部分忽略不计如果x、y均为偶数,则获得 5 财宝如果x、y奇偶性不同,则不获得财...原创 2019-09-20 08:51:25 · 858 阅读 · 0 评论 -
P6 括号匹配 (15 分)
栈的操作#include <iostream>#include <cstdio>#include <stack>#include <string>#include <cctype>#include <unordered_map>using namespace std;int main(){ string st...原创 2019-09-20 08:22:13 · 299 阅读 · 0 评论 -
例-1 大炮打蚊子 (15 分)
例-1 大炮打蚊子 (15 分)现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格。向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: OOXO O其中,X为炮弹落点中心,O为紧靠中心的四个有杀伤力的格子范围。若蚊子被炮弹命中(位于X格),一击毙命,若仅被杀伤(位于O格),则损失一半的生命力。也就是说,一次命中或者两次杀伤均可消灭蚊子。现在给出蚊子的分布情...原创 2019-09-20 07:30:45 · 2595 阅读 · 0 评论