自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。class Solution {public: //相加函数 int AddItem(int a,int b,int &sign) { int sum=a+b+sign; if(sum>=10) { sum=sum-10; sign=1; } else .

2021-05-12 17:14:56 528

原创 LeetCode125. 验证回文串

验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: falseclass Solution {public: //判断是否为字母和数字 bool IsLetter(char ch) { if(ch>='A'&.

2021-05-12 17:00:25 132

原创 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。#include <iostream>using namespace std;//获取最后一个单词的长度int GetlengthOfLastword(const string &s1){ int rindex=s1.rfind(' ');//反向查找空格 return s1.size()-rindex-1;//最后一个单词的长度为s1.size()-rindex-1}int main()

2021-05-12 16:48:52 2463

原创 LeetCode387. 字符串中的第一个唯一字符

字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2暴力解法:int j; for(int i=0;i<s.size();i++) { for(int j=0;j<s.size();j++) { //如果i==j说明他是同一个字符 if(i==j) { .

2021-05-11 22:19:19 93

原创 LeetCode917. 仅仅反转字母

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:“ab-cd”输出:“dc-ba”示例 2:输入:“a-bC-dEf-ghIj”输出:“j-Ih-gfE-dCba”示例 3:输入:“Test1ng-Leet=code-Q!”输出:“Qedo1ct-eeLg=ntse-T!”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-only-letters

2021-05-11 21:48:06 105

原创 Linux-----信号的产生-信号的注册-信号的注销-处理方式

目录1.信号的产生1.1硬件产生1.2 软件产生2.信号的注册2.1基本概念2.2 本质2.3 非可靠信号的注册:2.4 可靠信号的注册:3.信号的注销3.1 非可靠信号3.2 可靠信号1.信号的产生1.1硬件产生分为三种:ctrl + c:SIGINT(2)ctrl + z:SIGTSTP(20)ctrl + “|”:SIGQUIT(3)查看信号的信息以及查看信号的默认处理动作:man 7 signal操作系统对信号的处理动作:Term:终止Ign:忽略Core:终止+产生c

2021-04-26 22:47:57 259

原创 顺序表各项功能的接口及实现

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>typedef int SLDatatype;typedef struct SeqList{ SLDatatype* a; //存储数据空间的指针 int size; //有效数据的个数 int capacity; //容量空间大小}SeqList;//接口void SeqListInit

2021-04-19 17:58:28 100

原创 C++ 类,类的封装,访问限定符,类的作用域,类的实例化,类的对象大小计算

这里写目录标题1.面向过程和面向对象初步认识2.类的定义2.1类的两种定义方式3.类的访问限定符及封装3.1 访问限定符3.2 封装4.类的作用域5.类的实例化6.类的对象大小的计算1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的定义class className{ // 类体:由成员函数和成员变量组成 }; // 一定要注意后

2021-04-09 21:13:28 136

原创 C++ 函数引用

函数引用1.概念2.用法3.特性4.常引用5.引用的场景6.传值和传引用的效率比较7.引用和指针的区别:1.概念引用不是新定义一个变量,而是给已存在的变量取一个别名,编译器不会为引用的变量开辟内存空间,它和它引用的变量共用一块内存空间。2.用法类型 &引用变量名(对象名) = 引用实体注意:引用类型必须和引用实体是同种类型的3.特性引用在定义时必须初始化一个变量可以有多个引用引用一旦引用一个实体,再不能引用其他实体4.常引用声明方式:const 类

2021-04-09 20:16:30 4987 1

原创 C++ 缺省参数、函数重载、名字修饰

1.缺省参数1.1缺省参数概念:缺省参数是声明或定义函数时为函数的参数指定一个默认值 ;在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。所需代码:#include <iostream>using namespace std;void show(int a = 1, int b = 2, int c = 3){ cout << "a=" << a << endl; cout << "b=" <&lt

2021-04-08 19:17:28 178

原创 C++缺省参数详解

缺省参数1.缺省参数概念:缺省参数是声明或定义函数时为函数的参数指定一个默认值 ;在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。所需代码:#include <iostream>using namespace std;void show(int a = 1, int b = 2, int c = 3){ cout << "a=" << a << endl; cout << "b=" << b

2021-04-08 19:12:34 1092

原创 冯诺依曼体系结构

目录1.冯诺依曼体系结构2.操作系统2.1 概念2.2 设计OS的目的1.冯诺依曼体系结构截至目前,我们所认识的计算机,都是有一个个的硬件组件组成输入单元:包括键盘, 鼠标,扫描仪, 写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器,打印机等关于冯诺依曼,必须强调几点:这里的存储器指的是内存不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。 一句话,所有设

2021-04-05 15:31:00 363 3

原创 Linux调试器-gdb的使用、make、makefile、git工具

目录调试器-gdb注意调试的起手式调试可执行程序调试coredump文件make/makefilegit二级目录三级目录调试器-gdb注意如果要在linux操作系统底下,进行调程序,需要在编译程序的时候,将程序编译为debug版本。debug:是程序的一个调试版本,增加了一些调试信息,这些调试信息,可以帮助程序员调试代码。release:是程序的发布版本,客户一般拿到的是这个版本,这个版本相对于debug版本,编译器在编译的时候做了优化,程序运行更快;Linux 操作系统下,默认在编译的时候生成

2021-03-30 15:56:21 656 2

原创 linux编译器gcc/g++的使用

gcc/g++编译器程序编译的过程预处理编译汇编链接编译器gcc ==> 编译C语言格式:gcc [选项] 要编译的文件 [选项] [目标文件]g++ ==> 编译C/C++程序编译的过程预处理预处理:宏替换,头文件展开,去注释• 对于gcc或者g++,需要添加命令行参数 -E,生成的文件后缀为 .i• -E:告诉gcc或者g++,在编译过程中,完成预处理之后就停下来o:后面跟生成的文件名称eg:gcc -E test1.c -o test.a编译编译:检查语法,

2021-03-26 16:18:39 258

原创 Linux中的工具 yum工具,vim编辑器及其常用的命令

Linux中的工具yum工具命令安装软件包卸载vimvim编辑器vim七个功能移:光标的移动删:删除内容复:复制内容替:替换字符撤:返回上一步的操作更:更改文件内容跳:光标的跳转vim多行注释和多行去注释命令行模式命令集删除行号,添加行号同时打开多个文件(分屏打开)vim替换字符串查找某个字符串yum工具1.yum:包管理器,下载软件安装包,并且安装linux下我们有两种安装软件的方式:采用的是应用商店的方式2.应用商店是看不见摸不着的,在远端机器(服务商的服务器)命令1.查看yum应用商店

2021-03-26 15:25:58 304 1

原创 Linux中的命令行解释器和权限

命令行解释器1.命令行解释器命令行解释器命令行解释器的运行原理及作用原理作用2.权限权限的种类更改文件权限使用字母“r”“w”“x”更改权限采用数字的方式来更改权限3.权限的影响对文件的影响对文件夹的影响1.命令行解释器命令行解释器shell (是命令行解释器的统称,并不是一个具体的命令行解释器。eg:车(宝马,奥迪,大众)命令:echo $BASH命令行解释器的运行原理及作用原理作用1.将命令传递给linux操作系统2.将linux操作系统的执行结果返回2.权限权限的种类r

2021-03-26 00:05:20 244

原创 Linux中常见的指令(二): cp指令,mv指令,echo指令,cat指令,zip指令,unzip指令,tar指令,find指令,grep指令,tree指令,date指令,head指令,tail指令

基础指令21.cp命令:拷贝文件或者文件夹2.mv命令:移动或重命名3.cat命令:查看文件内容4.echo命令:插入字符串5.zip命令:压缩文件或文件夹6.unzip指令:解压缩(文件或文件夹)7.tar指令:压缩文件或文件夹8.find指令:查找文件9.grep指令:查找文件当中的字符串10.切换用户11.tree指令:可以查看文件目录结构12. date 查看当前日期13. 查看文件内容14.head 查看文件头部内容15.tail 查看文件尾部内容15.histroy 查看历史执行过的命令17.m

2021-03-25 16:59:11 338

原创 Linux-基础指令(一)ls命令 pwd命令 cd命令 mkdir命令 touch命令 rm命令

基础指令1建立普通用户ls命令pwd命令cd命令mkdir 命令touch 命令rm 命令建立普通用户创建一个用户名称: useradd 用户名称对创建的用户名设置密码: passwd 用户名称  如果上述两个步骤执行成功,你就可以输入想要设置的密码,这时输入密码看到光标是不动的,回车结束,再次输入,确认密码,回车结束。ls命令ls命令:罗列文件夹下的文件以及文件夹ls -a: 罗列当前文件夹下的所有文件,其中包括隐藏文件(隐藏文件和看见的文件区别就是,隐藏文件是以点开头的。这里面这个-a是命

2021-03-25 14:20:03 448

原创 链表的会回文结构。

题目描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true代码struct ListNode*reverseList(struct ListNode*head){ struct ListNode*cur =head; struct ListNode*newhead =N

2021-02-02 11:04:56 175 1

原创 链表分割。 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针

题目描述现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。解题思路代码 ListNode* partition(ListNode* pHead, int x) { struct ListNode* lesshead,*lesstail,*greaterhead,*greatertail; lesshead=lesstail=(struct L

2021-02-02 10:19:31 377

原创 LeetCode 21.合并两个有序链表。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-listsstruct ListN

2021-01-31 16:29:50 442 1

原创 剑指offer :输入一个链表,输出该链表中倒数第k个结点。

题目描述输入一个链表,输出该链表中倒数第k个结点。struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) { // write code here struct ListNode*fast=pListHead,*slow=pListHead; while(k--) { if(fast ==NULL) { return NULL;

2021-01-31 16:08:55 74

原创 LeetCode 876.链表的中间节点。 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。

给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NU

2021-01-31 15:53:02 340

原创 LeetCode 203.移除链表元素。 删除链表中等于给定值 val 的所有节点。

删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5代码struct ListNode* removeElements(struct ListNode* head, int val){ if(head ==NULL) { return head; } struct ListNode* newhe

2021-01-31 15:36:57 133

原创 LeetCode 206.反转一个单链表。

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路代码struct ListNode* reverseList(struct ListNode* head){ if (head == NULL || head->next == NULL) { return head; } struct ListNode* n1 = NULL, *n2 = NU

2021-01-31 15:02:07 78

原创 LeetCode 27.移除元素。 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函

2021-01-29 15:09:42 398

原创 LeetCode 88.合并两个有序数组。 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1], m =

2021-01-29 12:26:36 698 1

原创 LeetCode 26.删除排序数组中的重复项。 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的

2021-01-29 12:07:22 167

原创 LeetCode189.旋转数组。 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入

2021-01-29 11:41:39 186

原创 LeetCode 989:数组形式的整数加法。 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。

对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。示例 1:输入:A = [1,2,0,0], K = 34输出:[1,2,3,4]解释:1200 + 34 = 1234示例 2:输入:A = [2,7,4], K = 181输出:[4,5,5]解释:274 + 181 = 455示例 3:输入:A = [2,1,5], K =

2021-01-29 11:02:45 394

原创 字符查找函数strstr,strtok,错误信息函数strerror

目录strstr函数描述声明参数返回值使用模拟实现strtok函数描述声明返回值使用strerrorstrstr函数描述C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 ‘\0’。声明char *strstr(const char *haystack, const char *needle)参数haystack – 要被检索的 C 字

2021-01-19 15:38:37 234

原创 求第n个斐波那契数。(不考虑溢出)

求第n个斐波那契数。(不考虑溢出)较为粗暴的解法//斐波那契数列1 1 2 3 5 8 13 21:前两个数之和等于第三个数#include <stdio.h>int Fib(int n){ if (n <= 2) return 1; else return Fib(n - 1)+Fib(n - 2);}int main(){ int n = 0; int ret = 0; scanf("%d", &n); ret = Fib(n)

2021-01-19 10:09:53 183 2

原创 写一个函数交换两个整型变量的内容,写一个函数找出两个整数中的最大值,判断一个数是不是素数,判断闰年

//#include <stdio.h> //写一个函数交换两个整型变量的内容//void swap(int* p1, int* p2)//{// int tmp = *p1;// *p1 = *p2;// *p2 = tmp;//}//int main()//{// int a = 1;// int b = 3;// swap(&a, &b);// printf("%d%d", a, b);// // return 0;////}//#i

2021-01-19 10:08:18 152 1

原创 C语言:字符串函数,strlen函数,strcpy函数,strcat函数,strcmp函数,strncpy函数,strncat函数,strncmp函数

前言求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数strncpystrncatstrncmp字符串函数查找strstrstrtok错误信息报告strerror字符操作内存操作函数memcpymemmovememsetmemcmp前言C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组 中。 字符串常量 适用于那些对它不做修改的字符串函数.前言求字符串长度strlen长度不受限制

2021-01-19 10:02:21 199

原创 C语言:三子棋游戏

目录1.游戏介绍2.具体实现test.cgame.cgame.h运行结果1.游戏介绍先简单介绍一下三子棋的规则,方便我们接下来的编程和理解。规则如下:在九宫格棋盘上,只要将自己的三个棋子走成一条线(横、竖、对角线),对方就算输了。2.具体实现test.c//测试三子棋游戏#include <stdio.h>#include "game.h"void menu(){ printf("**************************\n"); printf("***1.p

2021-01-17 16:37:58 66

原创 C语言:输出9*9乘法口诀表

思路:利用俩层循环。遇到问题:第一遍无法换行输出,在第一层循环里添加换行语句,得到正确输出格式。#include <stdio.h>int main(){ int i = 0; for (i = 1; i <=9; i++) { int j = 0; for (j = 1; j <= i; j++) { printf("%d*%d=%2d ", i, j, i*j); //%2d表示固定输出两位,就是为了处输出结果美观 } printf("

2020-12-29 18:30:39 1092

原创 C语言:猜数字游戏

//猜数字游戏//1.电脑会生成一个随机数//2.猜数字#include <stdlib.h>#include <time.h>//RAND_MAX//0-32767void game(){ //1.生成一个随机数。 int ret = 0; int guess = 0;//接受猜数字 ret = rand()%100+1;//生成1-100之间随机数 //printf("%d\n", ret); //2.猜数字 while (1) { print

2020-12-29 18:17:21 697

原创 C语言:数组

数组一维数组的创建和初始化数组的创建数组是一组相同类型元素的集合。数组创建的方式:type_t arr_name[const_n];//type_t 是指数组的元素类型//const_n 是一个常量表达式用来指定数组的大小#include <stdio.h>int main(){ //创建一个数组-存放整型-10个 int arr[10]; //数组创建实例 注意:数组创建[]中要给一个常量,不能是变量。 char arr2[5]; float arr3[10];

2020-12-28 21:07:00 205

原创 C语言:求一个整数存储在二进制的个数

#include <stdio.h>int CountBit(int x){ int count = 0; int i; for (i = 0; i < 32; ++i) { if (x & 1) { count++; } x >>= 1; } return count;}int main(){ printf("%d\n", CountBit(3)); return 0;}

2020-12-23 20:51:53 113

原创 C语言:函数递归

函数递归文章目录函数递归什么是递归递归的两个必要条件练习一:接受一个整型值(无符号)按顺序打印他们的每一位。练习二:编写函数不允许创建临时变量,求字符串的长度。递归与迭代练习三:求n的阶乘。(不考虑溢出)练习四:求第n个斐波那契数。(不考虑溢出)什么是递归程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策

2020-12-23 20:21:23 1207 2

空空如也

空空如也

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

TA关注的人

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