C++课内题
elapse_
这个作者很懒,什么都没留下…
展开
-
问题 D: DS串应用—最长重复子串
问题 D: DS串应用—最长重复子串时间限制: 1 Sec 内存限制: 128 MB题目描述求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。输入测试次数tt个测试串输出对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.样例输入3abcaefabcabcszu0123szuszuabcefg样例输出43-1#include<iostream>#include<string>#原创 2021-04-13 22:11:34 · 940 阅读 · 2 评论 -
问题 C: 串应用- 计算一个串的最长的真前后缀
问题 C: 串应用- 计算一个串的最长的真前后缀时间限制: 1 Sec 内存限制: 128 MB题目描述给定一个串,如ABCDAB,则 ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA } ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB } 因此,该串的真前缀和真后缀中最长的相等串为AB,我们称之为该串的“最长的真前后缀”。 试实现一个函数string matched_Prefix_Postfix(string str),得到输入串str的最长的真前原创 2021-04-13 22:10:36 · 644 阅读 · 0 评论 -
问题 A: DS串应用--KMP算法
问题 A: DS串应用–KMP算法时间限制: 1 Sec 内存限制: 128 MB题目描述学习KMP算法,给出主串和模式串,求模式串在主串的位置算法框架如下,仅供参考输入第一个输入t,表示有t个实例第二行输入第1个实例的主串,第三行输入第1个实例的模式串以此类推输出第一行输出第1个实例的模式串的next值第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0以此类推样例输入3qwertyuioptyuaabbccddcccaaaaba原创 2021-04-13 22:04:39 · 909 阅读 · 0 评论 -
问题 E: 键盘替换
#include<iostream>#include<cstring>#include<queue>#include<stack>using namespace std;queue<string> p;stack<string> st;int main(){ //char a[100003]; string a; while(cin>>a) { string原创 2021-04-09 22:39:58 · 191 阅读 · 0 评论 -
问题 C: DS队列--组队列
问题 C: DS队列–组队列时间限制: 1 Sec 内存限制: 128 MB题目描述组队列是队列结构中一种常见的队列结构,在很多地方有着广泛应用。组队列是是指队列内的元素分组聚集在一起。组队列包含两种命令:1、 ENQUEUE,表示当有新的元素进入队列,首先会检索是否有同一组的元素已经存在,如果有,则新元素排在同组的最后,如果没有则插入队列末尾。2、 DEQUEUE,表示队列头元素出队3、 STOP,停止操作建议使用C++自带的队列对象queue,编程更方便输入第1行输入一个t(t<原创 2021-04-06 21:58:18 · 836 阅读 · 0 评论 -
问题 B: DS队列+堆栈--数制转换
问题 B: DS队列+堆栈–数制转换时间限制: 1 Sec 内存限制: 128 MB题目描述对于任意十进制数转换为k进制,包括整数部分和小数部分转换。整数部分采用除k求余法,小数部分采用乘k取整法例如x=19.125,求2进制转换整数部分19, 小数部分0.12519 / 2 = 9 … 1 0.125 * 2 = 0.25 … 09 / 2 = 4 … 1 0.25 * 2 = 0.5 … 04 / 2 = 2 … 0 0.5 * 2 = 1原创 2021-04-06 21:57:29 · 1191 阅读 · 0 评论 -
问题 A: DS队列之银行排队
问题 A: DS队列之银行排队时间限制: 1 Sec 内存限制: 128 MB题目描述在银行营业大厅共服务3种客户,类型为A\B\C,大厅分别设置了3个窗口分别服务三种客户,即每个窗口只服务一种客户。现有一批客户来银行办理业务,每个客户都有类型和办理业务时间。每个窗口按照客户到来的顺序进行服务。编程实现它们的办理流程,请使用C++自带的queue必须使用队列实现,其他方法0分!队列queue的用法如下:1.包含头文件:#include 2.定义一个整数队列对象:queue myQe;3.原创 2021-04-06 21:55:56 · 915 阅读 · 0 评论 -
问题 E: DS栈—波兰式,逆波兰式
#include<iostream>#include<stack>#include<map>#include<cmath>#include<string.h>#include<algorithm>using namespace std;stack<char> opre,nums;bool isbigcmp(char b, char a){ if (a == '+'||a=='-') { if (原创 2021-03-31 01:55:41 · 2109 阅读 · 0 评论 -
问题 D: DS堆栈--括号匹配
#include<iostream>#include<stack>#include<map>#include<cmath>#include<string.h>#include<algorithm>using namespace std;stack<char> p;int main(){ int t; cin >> t; while (t--) { string str; ci原创 2021-03-31 01:51:43 · 612 阅读 · 0 评论 -
问题 A: DS堆栈--逆序输出(STL栈使用)
#include<iostream>#include<stack>#include<map>#include<cmath>#include<string>#include<algorithm>using namespace std;stack<char> p;int main(){ int t; cin >> t; while (t--) { string str; int原创 2021-03-31 01:49:43 · 307 阅读 · 0 评论 -
问题 C: DS双向链表—前驱后继
问题 C: DS双向链表—前驱后继时间限制: 1 Sec 内存限制: 128 MB题目描述在双向链表中,A有一个指针指向了后继节点B,同时,B又有一个指向前驱节点A的指针。这样不仅能从链表头节点的位置遍历整个链表所有节点,也能从链表尾节点开始遍历所有节点。对于给定的一列数据,按照给定的顺序建立双向链表,按照关键字找到相应节点,输出此节点的前驱节点关键字及后继节点关键字。输入第一行两个正整数n(代表节点个数),m(代表要找的关键字的个数)。接下来输入n个整数为关键字key(数据保证关键字在数列原创 2021-03-23 21:47:11 · 855 阅读 · 1 评论 -
问题 B: DS单链表—删除重复元素
问题 B: DS单链表—删除重复元素时间限制: 1 Sec 内存限制: 128 MB题目描述给定n个整数,按输入顺序建立单链表,删除其中的重复数字,输出结果链表。(要求不可以构建新结点,不可以定义新链表。在原链表上删除。)输入测试次数t每组测试数据一行:n(表示有n个整数),后跟n个数字输出对每组测试数据,输出删除重复数字后的结果链表表长和每个元素,具体格式见样例。样例输入310 1 2 3 4 1 2 10 20 30 205 1 1 1 1 16 20 22 22 22 2原创 2021-03-23 21:46:17 · 567 阅读 · 0 评论 -
问题 A: DS循环链表—约瑟夫环(Ver. I - A)
问题 A: DS循环链表—约瑟夫环(Ver. I - A)时间限制: 1 Sec 内存限制: 128 MB题目描述N个人坐成一个圆环(编号为1 - N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2,S = 1。2号先出列,然后是1号,最后剩下的是3号。要求使用循环链表实现。输入第一行输入t,表示有t个测试用例;第二行起,每行输入一组数据,包括3个数N、K、S,表示有N个人,从第S个人开始,数到K出列。(2 <= N原创 2021-03-23 21:45:11 · 879 阅读 · 0 评论