
c语言
Allen吖
以光速来学习,以振兴为己任
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重启c语言之串——串的模式匹配
串的模式匹配给定一个主串S(长度<=10^6)和一个模式串T(在长度<=10的五次幂),要求在主串S中找出与模式T相匹配的子串,返回相匹配的子串中的第一个字符在主串S中出现的位置。输入格式:输入有两行: 第一行是主串S; 第二行是模式T.输出格式:输出相匹配的子串中的第一个字符在主串S中出现的位置。若匹配失败,输出0.输入样例:在这里给出一组输入。例如:aaaaababa输出样例:在这里给出相应的输出。例如:6思路:采用kmp算法进行匹配。以空间换取时间。具体的几个原创 2020-05-24 19:39:54 · 1776 阅读 · 0 评论 -
重启c语言之树——列出叶结点
列出叶结点对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。输入格式:首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 “-”。编号间以 1 个空格分隔。输出格式:在一行中按规定顺序输出叶节点的编号。编号间以 1 个空格分隔,行首尾不得有多余空格。输入样例:81 -- -0 -2 7- -- -5 -4 6输出样例:4 1原创 2020-05-23 22:43:07 · 4383 阅读 · 0 评论 -
重启c语言—列车调度
7-2 列车调度火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一...原创 2020-04-24 15:28:47 · 2512 阅读 · 3 评论 -
重启c语言—约瑟夫环
7-1 约瑟夫环N个人围成一圈顺序编号,从1号开始按1、2、3…顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。 请按退出顺序输出每个退出人的原序号。输入格式:输入只有一行,包括一个整数N(1<=N<=3000)及一个整数p(1<=p<=5000)。输出格式:按退出顺序输出每个退出人的原序号,数据间以一个空格分隔,但行尾无空...原创 2020-04-24 15:22:50 · 997 阅读 · 0 评论 -
重启c语言—堆栈操作合法性
7-3 堆栈操作合法性假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。...原创 2020-04-24 15:14:14 · 1064 阅读 · 0 评论 -
重启c语言— 括号匹配
7-2 括号匹配给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。输入格式:输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。输出格式:如果括号配对,输出yes,否则输出no。输入样例1:sin(10+20)输出样例1:yes输入样例2:{[}]输出样例...原创 2020-04-24 14:49:25 · 727 阅读 · 0 评论 -
重启c语言— 回文判断
7-1 回文判断 (35分)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。输入格式:输入待判断的字符序列,按回车键结束,字符序列长度<20。输出格式:若字符序列是回文,输出“YES”;否则,输出“NO”。输入样例:abdba输出样例:YES思路:只需要让前半部分与后半部分...原创 2020-04-24 13:41:59 · 1299 阅读 · 0 评论 -
重启c语言—重排链表
7-3 重排链表 (30分)给定一个单链表 L1 →L2 →⋯→Ln−1 →Ln ,请编写程序将链表重新排列为 Ln →L1 →Ln−1 →L2 →⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数,即正整数N (≤10^5 ...原创 2020-04-09 16:30:45 · 1284 阅读 · 0 评论 -
重启c语言—两个有序链表序列的交集
7-1 两个有序链表序列的交集 (20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -1...原创 2020-04-09 16:17:15 · 1199 阅读 · 0 评论 -
重启c语言-两个有序链表序列的合并
PTA刷题第20题-两个有序链表序列的合并已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5...原创 2020-03-30 17:03:37 · 1202 阅读 · 0 评论 -
重启c语言-链表倒数n个结点的乘积
PTA刷题第19题链表倒数n个结点的乘积本题要求计算单链表倒数n个结点的乘积。例如,给出单链表1 2 3 4 5,则倒数2个结点的乘积为20。输入格式:输入有2行,第一个行为2个非负整数m和n。其中m为链表结点个数,n为链表倒数结点的数量。题目保证计算结果在int范围内。 第二行为链表的m个数,以空格分隔。输出格式:在一行中输出倒数n个结点的乘积。输入样例:5 21 2 3 4 ...原创 2020-03-19 22:58:03 · 2558 阅读 · 0 评论 -
重启c语言-单链表的创建及遍历
PTA刷题第17题单链表的创建及遍历读入n值及n个整数,建立单链表并遍历输出。输入格式:读入n及n个整数。输出格式:输出n个整数,以空格分隔(最后一个数的后面没有空格)。输入样例:在这里给出一组输入。例如:210 5输出样例:在这里给出相应的输出。例如:10 5思路:这里主要考查了单链表的建立以及简单输出。由于链表所存放数据的存储单元既可以是连续的,也可以是不连续的...原创 2020-03-19 21:21:13 · 883 阅读 · 0 评论 -
重启c语言-数组循环左移
PTA-第13题7-1 数组循环左移 (35分)本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a 0 a 1 ⋯a n−1 )变换为(a m ⋯a n−1 a 0 a 1 ⋯a m−1 )(最前面的m个数循...原创 2020-03-12 22:44:05 · 541 阅读 · 0 评论 -
重启c语言- 到底有多二
PTA第12题- 到底有多二一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的...原创 2020-03-03 17:35:52 · 1247 阅读 · 0 评论 -
重启c语言-黑洞数
PTA第11题-黑洞数黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)例如,对三位数207:第1次重排求差得:720 - 27 = 693;第2次重排求差得...原创 2020-03-03 16:10:45 · 903 阅读 · 0 评论 -
重启c语言-找出总分最高的学生
PTA第10题-找出总分最高的学生给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。输出格式:在一行中...原创 2020-03-03 15:27:17 · 4889 阅读 · 5 评论 -
重启c语言-数组元素的删除
PTA第9题-数组元素的删除完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 重复若干次这样的删除,得到最后的结果。输入格式:第一行包括一个整数n(1<=n<=100),表示数组元素的个数。 第二行输入n个数组元素,均为整数,用空格隔开。 第三行输入一个数k(1<=k<=100),表示要进行k次删除...原创 2020-03-03 15:19:45 · 2871 阅读 · 0 评论 -
重启c语言-查验身份证
PTA第8题-查验身份证一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 ...原创 2020-03-03 14:04:03 · 640 阅读 · 0 评论 -
重启c语言-选择排序法
PTA第7题-选择排序法本题要求将给定的n个整数从大到小排序后输出。输入格式:输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。输出格式:在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。输入样例:45 1 7 6输出样例:7 6 5 1思路:拿到题目首先想到了冒泡排序算法,注意的问题就是最后一个输出后面不需要空格。因此我...原创 2020-03-03 13:57:06 · 284 阅读 · 0 评论 -
重启c语言——打印沙漏
PTA第三题-打印沙漏本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输入在一行给出1个正整数N(...原创 2020-02-22 13:53:10 · 283 阅读 · 0 评论 -
重启c语言之串——串的模式匹配 2
串的模式匹配 2给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出。如果找不到,则输出“Not Found”。本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试数据特点如下:数据0:小规模字符串,测试基本正确性;数据1:随机数据,String 长度为 10^5,Pattern 长度为 10;数据2:随机数据,String 长度为 10^5,Pattern 长度为原创 2020-05-24 19:56:50 · 2104 阅读 · 0 评论