- 博客(19)
- 收藏
- 关注
原创 【20分】F. 可重叠子串I)
给定一个字符串(模式串)和一些待查找的字符串,求每个待查找字符串在模式串中出现的次数(可重叠)第二行包括一个整数N,代表待查找的字符串数量 (1
2023-04-29 21:09:40
134
原创 E. DS串应用--KMP算法
第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0。第二行输入第1个实例的主串,第三行输入第1个实例的模式串。学习KMP算法,给出主串和模式串,求模式串在主串的位置。【20分】E. DS串应用--KMP算法。第一行输出第1个实例的模式串的next值。第一个输入t,表示有t个实例。算法框架如下,仅供参考。
2023-04-29 21:08:06
161
原创 D. DS串应用--串替换
给出主串、模式串、替换串,用KMP算法找出模式串在主串的位置,然后用替换串的字符替换掉模式串。第二行输入第1个实例的主串,第三行输入第1个实例的模式串,第四行输入第1个实例的替换串。第二行输出第1个实例的主串替换后结果,如果没有发生替换就输出主串原来的内容。本题只考虑一处替换的情况,如果你想做的完美一些,能够实现多处替换那。可能需要考虑模式串和替换串长度不一致的情况。第一个输入t,表示有t个实例。第一行输出第1个实例的主串。
2023-04-29 21:07:02
180
1
原创 C. 子串循环问题I
如“abca”,添加“bc”后构成“abcabc”,其由子串“abc”循环构成;也可以添加“abca”后构成“abcaabca”,其由子串“abca”循环构成,相比之下“bc”只有2个字符,添加的字符量最少。给定一个字符串,求需要添加至少几个字符到字符串末尾才能使得整个字符串串由某一个不为本身的子串循环构成?第一行包括一个整数T(1
2023-04-29 21:05:19
120
原创 B. DS串应用—最长重复子串
求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.
2023-04-29 21:03:26
126
原创 A. 串应用- 计算一个串的最长的真前后缀
给定一个串,如ABCDAB,则 ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA } ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB } 因此,该串的真前缀和真后缀中最长的相等串为AB,我们称之为该串的"最长的真前后缀"。试实现一个函数字符串matched_Prefix_Postfix(string str),得到输入串str的最长的真前后缀。第1行:串的个数 n 第2行到第n+1行:n个字符串。n个最长的真前后缀,若不存在最长的真前后缀则输出空。
2023-04-29 21:01:49
98
原创 E. DS堆栈--字符替换
第二行输入t行字符,若输入字符中有#,则检查#的前一个字符,如果该字符不是@,则替换为@;如果该字符已经是@,则执行退格操作把@删除。输入的字符串不含空格。在一个行编辑处理程序中,用户将输入一行字符。若用户输入#,表示将#之前的字符替换为@,#本身不算字符输入。请使用C++自带的堆栈栈进行编程。必须使用堆栈来实现,其他方法0分!第一行输入一个t,表示下面将有t行字符。输出每一行字符的最终结果。,如果为空则函数返回。
2023-04-09 22:11:36
61
原创 D. DS堆栈--迷宫求解
如果迷宫存在路径,将路径中每个方格的x和y坐标输出,从起点到终点,每输出四个方格就换行,最终以单词END结尾,具体格式参考示范数据。给出一个N*N的迷宫矩阵示意图,从起点[0,0]出发,寻找路径到达终点[N-1, N-1]path是保存路径的堆栈,堆栈中每个元素都包含x坐标和y坐标,用属性xp和yp表示。path1是一个临时堆栈,把path的数据倒序输出到path1,使得路径按正序输出。第三行起,输入迷宫每一行的每个方格的状态,0表示可通过,1表示不可通过。如果迷宫不存在路径,则输出无路径并回车。
2023-04-09 22:10:07
104
原创 C. DS堆栈--括号匹配
从上例可以看出第1和第2个括号匹配,第3和第10个括号匹配,4和5匹配,6和9匹配,7和8匹配,11和12匹配。处理表达式过程中需要对括号匹配进行检验,括号匹配包括三种:"("和")","["和"]","{"和"}"。2、 当接受第1个右括号,则和最新进栈的左括号进行匹配,表示嵌套中1组括号已经匹配消除。5、如果第i个字符是右括号,检查栈顶元素是否匹配 A.如果匹配,弹出栈顶元素。对于每一行的表达式,检查括号是否匹配,匹配则输入ok,不匹配则输出错误。1、初始化,i=0,建立堆栈,栈为空。
2023-04-09 22:08:32
122
原创 B. DS堆栈--行编辑
使用C++的STL堆栈对象,编写程序实现行编辑功能。行编辑功能是:当输入#字符,则执行退格操作;如果无字符可退就不操作,不会报错。每行输出最终处理后的结果,如果一行输入的字符串经过处理后没有字符输出,则直接输出NULL。本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作。注意:必须使用堆栈实现,而且结果必须是正序输出。第一行输入一个整数t,表示有t行字符串要输入。每输入一行字符打回车则表示字符串结束。第二行起输入一行字符串,共输入t行。
2023-04-09 22:06:33
78
原创 A. DS堆栈--逆序输出(不使用STL栈)
输入一个字符串,按字符按输入顺序压入堆栈,然后根据堆栈后进先出的特点,做逆序输出。请编写堆栈操作的具体实现代码,实现字符串的逆序输出,需自行实现堆栈。len = str.length() //获取输入字符串的长度。第二起,每一行输入一个字符串,注意字符串不要包含空格。把输入的字符串保存在变量str中。第一行输入t,表示有t个测试实例。#include 每行逆序输出每一个字符串。{ 字符串 str;
2023-04-09 22:01:55
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人