自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sang_12345的博客

谢谢您的来访。

  • 博客(27)
  • 收藏
  • 关注

原创 玛雅人的密码

题目描述玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能解开密码,每次只能移动相邻的两个数字。例如02120经过一次移位,可以得到20120,01220,02210,02102,其中20120符合要求,因此输出为1.如果无论移位多少次都解不开密码,输出-1。输入描述:输入包含多组测试数据,每组测试数据由两行组成。第一行为一个整数N,代表字符串的长度(2&

2021-03-31 18:10:17 111

原创 二叉树遍历

题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据,输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。示例1输入abc##de#

2021-03-30 17:42:35 92

原创 球的半径和体积

题目描述输入球的中心点和球上某一点的坐标,计算球的半径和体积输入描述:球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1输出描述:输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数为避免精度问题,PI值请使用arccos(-1)。示例1输入0 0 0 1 1 1 输出1.732 21.766解题思路:该题考查的更多是float和double的精度问题吧1.float 为单精度,内存中占 4 个字

2021-03-30 14:07:14 164

原创 整数拆分

题目描述一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,读入n(不超过1000000),输出f(n)%1000000000。输入描述:每组输入包括一个整数:N(1

2021-03-28 20:25:26 300

原创 手机键盘

题目描述按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。 如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下 如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。 现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。 现在给出一串字符,需要计算出它所需要花费的时间。输入描述:一个长度不大于100的字符串,其中只有手机按键上有的小写字

2021-03-28 18:24:11 93

原创 约数的个数

题目描述输入n个整数,依次输出每个数的约数的个数输入描述:输入的第一行为N,即数组的个数(N<=1000)接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)输出描述:可能有多组输入数据,对于每组输入数据,输出N行,其中每一行对应上面的一个数的约数的个数。示例1输入51 3 4 6 12输出12346算法思想:对于数 n,因为小于的数 i 如果能整除n,则必定还有一个大于的因数j,使得=..

2021-03-28 15:30:40 81

原创 成绩排序

题目描述查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。示例:jack70peter96Tom70smith67从高到低成绩peter96jack70Tom70smith67从低到高smith67jack 70Tom 70peter96输入描述:...

2021-03-28 15:04:36 253

原创 进制转换

题目描述将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。输入描述:多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)输出描述:每行输出对应的二进制数。示例1输入0138输出01111000算法思想:128/2 我们得到64和余数0 ,所以我们得到的0就应该放在最低位,这时我们再把64/2,....以此类推知道被除数为0的时候就计算完成#includ.

2021-03-28 13:24:40 48

原创 判断链表中是否有环

题目描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度o(1)的解法么?1.方法一:快慢指针慢指针针每次走一步,快指针每次走两步,如果相遇就说明有环,如果有一个为空说明没有环。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), n

2021-03-27 19:14:38 153

原创 链表中的节点每k个一组翻转

题目描述将给出的链表中的节点每k个一组翻转,返回翻转后的链表如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度O(1)例如:给定的链表是1→2→3→4→5对于k=2, 你应该返回2→1→4→3→5对于k=3, 你应该返回3→2→1→4→5示例1输入复制{1,2,3,4,5},2返回值复制{2,1,4,3,5}/** * struct ListNode { * i...

2021-03-27 19:10:18 129

原创 快速排序

static const auto io_sync_off = [](){ // turn off sync std::ios::sync_with_stdio(false); // untie in/out streams std::cin.tie(nullptr); return nullptr;}();class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可.

2021-03-27 16:28:00 54

原创 static const auto io_sync_off = []()

牛客网上面的一些“奇怪”代码!!! static const auto io_sync_off = [](){ // turn off sync std::ios::sync_with_stdio(false); // untie in/out streams std::cin.tie(nullptr); return nullptr;}();这是c++11中的Lambda表达式,定义了一个静态函数io_sync_off,关于Lambda表达式的具体形...

2021-03-27 16:14:01 610

原创 反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。示例1输入{1,2,3}返回值{3,2,1}/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNod

2021-03-27 14:04:16 103

原创 C++基础知识

1.默认情况下vs下的小数是double类型,但是打印的时候最多显示小数点后5位。2.隐含转换:基本原则是将低类型数据转换为高类型数据,然后再计算。由低到高:char---short---int---unsigned---long---unsigned long---float---double3.水平制表符\t具有对\t后面的内容对齐的作用:\t前面有八个字符。aaa\t,在aaa后面五个空格;aaaaa\t后面三个空格; cout<<"aaa\thellowworld"&lt...

2021-03-07 18:47:50 106

原创 二进制文件--读文件

1.二进制读文件主要是利用流对象调用成员函数read2.函数原型:ifstream& read(char *buffer,int len);参数解释:字符指针buffer指向内存中一段存储空间,len是读写的字节数#include<iostream>#include<fstream>#include<string>using namespace std;//二进制读文件class Person{public: char m_name

2021-03-04 19:25:32 280 1

原创 二进制文件--写文件

1.以二进制的方式对文件进行读写操作,打开方式指定为 ios::binary2.写文件:二进制方式写文件主要利用流对象调用成员函数write函数原型:ostream &write(const char *buffer,int len);字符指针buffer指向内存中一段存储空间,len是读写的字节数#include<iostream>#include<fstream>#include<string>using namespace std;

2021-03-04 19:12:22 318 1

原创 文本文件--读文件

1.步骤包含头文件 #include<fstream> 创建流对象 ifstream ifs; 打开文件并判断文件是否打开成功 ifs.open("文件路径“,打开方式) 读数据 四种方式 关闭文件 ifs.close();#include<iostream>#include<fstream>#include<string>using namespace std;//文本文件 读文件 void test1(){ ifstrea.

2021-03-04 18:33:40 217 1

原创 文本文件--写文件

1.背景:程序运行时产生的数据据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化2.c++中对文件操作需要包含头文件<fstream>3.文件类型分为两种:文本文件 文件以文本的ASCII码形式存储在计算机中 二进制文件 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们4.操作文件的三大类:ofstream:写操作 ifstream:读操作 fstream:读写操作5.文本文件--写文件写文件步骤如下:包含头文件 #inclu.

2021-03-04 18:08:45 774 1

原创 虚析构和纯虚析构

1.多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码解决方式:将父类中的析构函数改为虚析构或者纯虚构虚析构和纯虚构共性:可以解决父类指针释放子类对象 都需要有具体的函数实现虚析构和纯虚构的区别:如果是纯虚析构,该类属于抽象类,无法实例化对象虚析构语法:virtual ~类名(){}纯虚构语法:virtual ~类名()=0;#include<iostream>using namespace std;#inclu.

2021-03-04 17:12:11 193 1

原创 多态案列--制作饮品

流程:煮水--冲泡--倒入杯中--加入辅料 利用多态技术实现本案列,提供抽象制作饮品类,提供子类制作咖啡和茶叶#include<iostream>using namespace std;#include<string>//多态案例--制作饮品class AbstractDrinking{public: //煮水 virtual void Boil() = 0; //冲泡 virtual void Brew() = 0; //倒入杯中 virtual v

2021-03-04 14:43:40 151 1

原创 纯虚函数和抽象类

在多态中,

2021-03-04 13:46:41 125 1

原创 多态的案例--计算器类

#include<iostream>using namespace std;#include<string>//分别利用普通写法和多态技术实现计算器//普通写法class Calculator{public: double getresult(string oper) { if (oper == "+") { return a + b; } else if (oper == "-") { return a - b; } el.

2021-03-03 19:10:02 222 1

原创 多态的基本概念

多态分为两类静态多态:函数重载和运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定--编译阶段确定函数地址 动态多态的函数地址晚绑定--运行阶段确定函数地址#include<iostream>using namespace std;#include<string>//动态//动物类class Animal{public: //虚函数 //函数前面加上virtual关键字,变成虚

2021-03-03 16:08:14 138

原创 菱形继承

1.菱形继承概念两个派生类继承同一个基类 又有某个类同时继承两个派生类 这种继承被称为菱形继承,或者钻石继承 菱形继承带来的主要问题是子类继承两份相同的数据,导致资源浪费以及毫无意义 利用虚继承可以解决菱形继承问题#include<iostream>using namespace std;#include<string>//动物类class Animal{public: int m_age;};//利用虚继承解决菱形继承的问题//加virtual

2021-03-03 13:14:59 456

原创 多继承用法

1.c++允许一个类继承多个类语法:class 子类:继承方式 父类1,继承方式 父类2...多继承可能会引发父类中有同名成员出现,需要加作用域区分c++实际开发中不建议用多继承#include<iostream>using namespace std;#include<string>//多继承class Base1{public: Base1() { m_a = 100; } int m_a; };class Base2{publ

2021-03-03 12:06:06 139

原创 继承同名静态成员处理方式

1.问题:继承中同名的静态成员在子类对象上如何进行访问?2.静态成员和非静态成员出现同名,处理方式一致访问子类同名成员 直接访问即可 访问父类同名成员 需要加作用域#include<iostream>using namespace std;#include<string>//继承中同名静态成员处理class Base{public: Base() { m_a = 100; } static void func() { cout &lt..

2021-03-03 11:48:43 112

原创 继承同名成员处理方式

问题:当子类和父类出现同名成员,如何通过子类对象访问到子类或者父类中同名的数据呢?访问子类同名成员 直接访问即可 访问父类同名成员 需要加作用域#include<iostream>using namespace std;#include<string>//继承中同名成员处理class Base{public: Base() { m_a = 100; } void func() { cout << "Base - func() 调.

2021-03-03 10:43:05 85

空空如也

空空如也

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

TA关注的人

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