自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 串—BF算法(简单匹配算法)

串的模式匹配:查找模式串 t 是不是目标串 s 的子串,如果模式匹配成功(在目标串s中找到一个模式串t),t 是s 的字串,返回 t 在 s 中的位置;如果模式匹配不成功,t 不是 s 的子串, 返回 -1.方法: BF算法,也称为简单匹配算法。 采用穷举的思路。从s的每一个字符开始依次与t的字符进行匹配。基本思路:1、从目标串s = "s0 s1…s n-1"的第一个字符开始和模式串t ...

2019-07-11 17:07:35 2375 1

原创 堆栈

一、顺序结构存储#include<stdio.h>#define maxSize 100/*顺序结构存储栈:一个数组、一个位置指示器*/typedef struct { int data[maxSize]; int top; // 位置指示器}SqStack;/*入栈:1、位置指示器top加1;2、进入元素*/void push(SqStack *st, int ...

2019-06-29 19:58:27 320

原创 1093 字符串A+B

题目描述:给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除。输入格式:输入在两行中分别给出 A 和 B,均为长度不超过 10^​6 ​​的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。输出格式:在一行中输出题面要求的 A 和 B 的和。输入样例:This is a...

2019-06-28 14:53:05 433

原创 C++ Primer Plus笔记

一、cin输入字符串、cout输出字符串cin输入字符串以空格/换行符为分割点例如: cin>>str1>>str2;输入:hello world 或者 hello换行符world,即str1 = "hello, str2 = "world"输入:helloworld,即str1 = "helloworld"小结:cin是面对单个单词或字符的输入,不是面对一整...

2019-06-27 13:53:55 295

原创 删除重复字符

输入:good121输出:gd2int main(void) { char a[MAX]; char hash[128] = { 0 }; int i = 0; /*scanf("%s", a); for (int i = 0; i < strlen(a); i++) { hash[a[i]]++; }*/ gets(a); for (int i = 0; i &lt...

2019-06-26 21:22:30 327

原创 递归

递归定义:一个函数自己直接或者间接调用自己(使用栈来实现)递归边界递归函数举例1、递归求阶乘(直接调用函数自己)#include<stdio.h>int jieC(int n){ if(n == 1) return 1; else return n * jieC(n - 1);}int main(void){ int n; scanf("%d", &amp...

2019-06-26 11:37:00 1175

原创 二叉树的创建与遍历(递归法)

#include<stdio.h>#include<stdlib.h>typedef char TElemType;/*定义结点*/typedef struct BTnode { TElemType data; struct BTnode *lchild; struct BTnode *rchild;}BTNode, *BiTree;/*创建二叉树*/...

2019-06-24 21:28:53 528

原创 C++与C区别

C++中的string对象与C语言中的字符数组的区别:主要区别:可以将string对象声明为简单变量,而不是数组,如string str1 = "panther"使用string类时,某些操作比使用数组更简单。例如,不能将一个数组赋给另一个数组,但可以将一个string对象赋给另一个string对象。string str1;string str2 = "panther";str...

2019-06-21 19:05:37 4189

原创 1042 字符统计

请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。输入样例:...

2019-06-16 21:36:25 418 1

原创 1038 统计同成绩学生

本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第 1 行给出不超过 10^​5​​ 的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余...

2019-06-14 19:04:33 129

原创 罗马数字转整数

罗马数字转整数题目链接思路:先将输入的字符串数组转化为int类型数组,罗马数字比较转换成数字比较'I’对应1,'V’对应5…'M’对应1000.对整型数组遍历,相邻元素进行比较,若前者大于等于后者,则保存前者的值;若前者小于后者,则保存两者差的值(后者减前者)例如输入字符串"MIV", 转换为整型数组为{1000,1,5};从左往右遍历:此时下标i = 0,1000>1;保...

2019-06-13 11:20:25 755

原创 分数四则运算

预备知识:1、分数化简第一种情况:如假分数17/2,最终需要化简成8 1/2;即a b/c的形式其中a = 分子/分母; b = 分子%分母;c是分母第二种情况:6/9,需要化简成2/3;即将分子分母同时除以最大公约数求最大公约数算法如下:/*a 和 b的最大公约数*/int gcd(int a, int b){ if(b == 0) return a; else retur...

2019-06-12 10:58:52 1151

原创 删除指定长度字符串

#include<stdio.h>#include<string.h>#define MAX 100/*串str存在,pos是字符的位置,从1开始;1 <= pos <= strlen(str) - len + 1len是将要删除的子串长度strdelete函数作用: 从串str中删除第pos个字符起长度为len的字串*/void strde...

2019-06-12 09:24:10 1496

原创 字串位置

题目要求:在主字符串S中找到指定的子字符串T,且输出第一次出现T的位置(即T的首字母下标),假设主子符串S为 “hjhelpkl”, T子字符串为 “help”, 那么T的位置是2;思路:在主串S中从左往右遍历与字串T长度相等的字符,第一次遍历的是hjhe, 第二次遍历的是jhel…,当两者相等时,输出位置#include<stdio.h>#include<string...

2019-06-11 16:27:52 226

原创 字符串插入

具体操作间代码中注释部分!!!#include<stdio.h>#include<string.h>#define MAX 100/*在字符串str的第pos个位置之前插入另一个字符串Tpos从1开始,且 1<= pos <= strlen(str) + 1例如:str = "hello", T = "world";当 pos=1; 在字符串头前...

2019-06-11 15:30:26 8468

原创 PAT乙级——1008 数组元素循环右移问题

一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式在一行中输出循环右移M位以后的整数序列,之间用...

2019-06-04 23:01:15 140

原创 C语言编程练习13——数组元素移动

题目:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序输入:0 1 0 3 12输出:1 3 12 0 0要求:必须在原数组上操作,不能拷贝额外的数组算法如下:/*数组元素右移*/#include<stdio.h>#define MAX 100void remove1(int *a, int n, int nu...

2019-06-01 23:07:14 2753

原创 大整数比较(带符号)

思路:大整数的比较需要通过数字字符串来比较假设字符数组a[100], b[100]来存储输入的数值一、a、b异号1、a正,b负,函数返回值为1, a必大于b2、a负,b正,函数返回值为-1,a必小于b二、a、b同号1、a正,b正字符串a、b长度不相等len1表示字符串a的长度,len2表示字符串b的长度若len1 > len2, 函数返回值为1, a必大于b若len1 ...

2019-06-01 11:57:38 1005

原创 大整数之加法(无符号)

一、高精度加法/*大整数的高精度加法*/#include<stdio.h>#include<string.h>#define MAX 1000void change(char *str, int *sub) { int len = strlen(str); int k = 0; for (int i = len - 1; i >= 0; i--) {...

2019-05-31 15:24:00 1039

原创 字符串去重(重点)

要求:将给定字符串去掉重复的字符,如hello->helo方法一:适合于输入字符有限定(例如只允许输入英文、数字等)思路:1、遍历找出相同字符,替换字符以数组a为例,将元素a[i] 与a[i] 后面的元素a[k]依次比较,如果后面的元素a[k]有与a[i]相同的,将a[k] 替换成另一个字符( 区同于题目中允许输入的字符如‘#’)2、重新保存 不重复的字符遍历数组a,如果a[i]...

2019-05-28 19:50:24 7172

原创 C语言编程练习11——找子串

题目要求:在主字符串S中找到指定的子字符串T,且输出第一次出现T的位置(即T的首字母下标),假设主子符串S为 “hjhelpkl”, T子字符串为 “help”, 那么T的位置是2;思路:在主串S中从左往右遍历与字串T长度相等的字符,第一次遍历的是hjhe, 第二次遍历的是jhel…,当两者相等时,输出位置#include<stdio.h>#include<string...

2019-05-26 22:07:04 1010

原创 单链表反转

设置三个指针,pHead头指针,prev一直指向初试状态的第一个元素(比如初始状态共1、2、3、4四个元素,在反转的过程中指针prev一直指向元素1),pcur指针指向每次反转的结点;每次将ocur指向的元素反转到头指针后面。如上图示:将元素2反转到头指针和元素1之间1、元素1直接指向元素32、元素为2的结点指向元素13、头指针指向元素24、pcur指针指向元素3(下一个将要反转的结点)...

2019-05-22 20:33:43 151

原创 线性表

1、定义:n个结点离散分配彼此通过指针相连,每个结点只有一个前驱结点/后续结点首结点没有前驱结点,尾节点无后续结点2、专业术语:头结点:不存储有效数据(加头节点目的主要是方便链表操作)头指针:指向头节点的指针变量(存放头节点的地址)首结点 尾结点尾指针:指向尾节点的指针3、确定一个单链表需要几个参数:1、头指针通过头指针可以推算出链表的其它所有信息4、一个结点如何生...

2019-05-21 14:10:53 114

原创 PAT乙级——1023 组个最小数

给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输出格式在一行中输出能够组成的最小的数。输入样例:2 2 0 0 0 3 0 0 1 0输出样例:10015558思...

2019-05-20 20:14:26 225

原创 PAT乙级——1009 说反话(多种方法字符串逆序)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Com...

2019-05-18 16:52:00 349

原创 C语言练习10—字符串首字母大写(任意空格数量)

1805: 首字母大写题目描述对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(’ ‘)、制表符(’\t’)、回车符(’\r’)、换行符(’\n’)。输入输入一行:待处理的字符串(长度小于100)。输出可能有多组测试数据,对于每组数据,输出一行:转换后的字符串。样例输入if so, you...

2019-05-13 19:48:45 4243

原创 C语言练习9—统计单词中字母个数

1809: 统计单词题目描述编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。(凡是以一个或多个空格隔开的部分就为一个单词)输入输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。输出可能有多组测试数据,对于每组数据,输出字符串中每个单词包含的字母的个数。样例输入hello how ar...

2019-05-12 19:53:03 5333 2

原创 团体程序设计天梯赛——L1-003 数字个数统计

L1-003 个位数统计 (15 分)给定一个 k 位整数 N请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输出格式:对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D...

2019-05-12 09:55:16 415

原创 C语言练习8—判断回文字符串

本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。C语言代码#include <stdio.h>#include &...

2019-05-10 21:25:19 3690

原创 C语言练习7—一维数组删除指定位置元素

题目在一维数组删除指定位置元素,现定义第一个元素位置为1,一维数组元素个数不确定,需要动态输入,并返回删除元素后的数组以及被删除的元素。例如输入数组个数为n = 4;将要删除的数组元素位置是2;在这里插入代码片...

2019-05-10 09:07:45 21584 3

原创 C语言练习6—PAT浙大版《C语言程序设计(第3版)》题目集 习题10-3 递归实现指数函数

本题要求实现一个计算x^​n​​(n≥1)的函数。函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内输入样例:2 3输出样例:8C语言代码如下:#include <stdio.h>double calc_pow( double x, int n );int main(){ double x; int n; ...

2019-05-07 09:27:03 1548

原创 PAT乙级——1007素数对猜想

题目:让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。...

2019-05-06 19:53:35 184

原创 C语言练习5—PAT浙大版《C语言程序设计(第3版)》题目集 习题7-7 字符串替换

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母A ZB YC X…Z A输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后的字符串。输入样例:Only the 11 CAPItaL LeTtERS are replaced.输出样例:Lnly the 11 XZKRt...

2019-05-05 15:58:26 795

原创 C语言练习4—递归法求阶乘

题目描述用递归的方法求出n!的值。输入一个正整数n,保证n不超过10。输出n!的值。请注意行尾输出换行。样例输入5样例输出120#include<stdio.h>int jieC(int n);int main(void) { int n; scanf("%d", &n); if (n > 0 && n <= 10...

2019-05-01 12:15:15 1166

原创 C语言练习1—比较字符串

题目描述读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不相同位置的字符ASCII差值,例如”And”和”Aid”比较,根据第2个字符的比较结果,应输出5。要求不要使用strcpy和strcmp函数。输入两行字符串。保证每个字符串的长度不超过100。输出两个字符...

2019-05-01 10:03:15 1454

原创 C语言练习2—计算数字之和

题目:读入一个正整数 n,计算其各位数字之和输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​^100​​。思路:读入一个整数最简单的方法是通过scanf()函数输入,但是我们知道int类型在不同位数机器中所占的字节不同,在16位机器中占2个字节,在32和64位机器中都是占4个字节,而1byte = 8位,以4个字节为例,int(有符号)数据类...

2019-04-16 08:55:11 8073

原创 C语言练习3—数组法和指针法输出二维数组

2019/4/12题目:有一个3*4的二维数组,要求数组法和指向元素的指针变量输出二维数组中元素的值输出结果为:     数组法:#include <stdio.h>int main(void){  /*i为行,j为列*/  int i, j;  /*定义一个3*4的二维数组 */  int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}...

2019-04-12 22:02:24 1765

原创 《C Primer Plus笔记》构造类型

一、结构声明格式如下:struct 结构体类型名{  成员1的定义;  成员2的定义;  ……} ;1. 关键字struct表明后面跟着的是一个结构2. 成员的定义跟其它普通变量的定义方式一样3. 声明结尾有分号4. 结构体内的成员可以是任意一种数据类型,也可以是其它结构如:struct student{  int num;  char name[20]; ...

2019-04-12 18:39:23 114

原创 《C Primer Plus笔记》数组

一、数组初始化:一维数组初始化:一般形式:  类型名 数组名[数组长度] = {初值表};例如:  int a [5] = {1, 2, 3, 4, 5};1、当使用空的方括号对列表进行初始化时,编译器会根据列表中的数值数目来确定数目大小例如:  int a [ ] = {1, 2, 3, 4, 5};等价于 int a [5] = {1, 2, 3, 4, 5};2、当数值数目...

2019-04-03 11:16:55 180

原创 《C Primer Plus》习题第十章复习题

复习题1.下面的程序将打印什么内容?#include <stdio.h>int main(void){ int ref[] = { 8, 4, 0, 2 }; int *ptr; int index; for (index = 0, ptr = ref; index < 4; index++, ptr++) printf("%d %d\n", ref[ind...

2019-04-03 11:12:41 1870 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除