![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++ pratice
Xie_Yuchen
华中科技大学
展开
-
main函数的argc与argv
main函数可以选择传入参数,如下例:argc–arguments countargc–arguments value/vector字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个参数,空格分隔参数,长度为argc。数组下标从0开始,argv[0] 指向程序运行时的全路径名argv[1] 指向程序在DOS命令中执行程序名后的第一个字符串argv[2] 指向执行程序名后的第...原创 2019-11-16 15:27:32 · 661 阅读 · 0 评论 -
C++迭代器在链表中的简单实现
什么是迭代器?An iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of...原创 2019-11-13 21:03:51 · 1289 阅读 · 0 评论 -
双向链表(一)
双向链表(一)双向链表是一个常用的数据结构,同时在STL中也占有一席之地,那么实现双向链表是一个很好的练习,那么下面就实现一个最简单的双向链表。基本设置:含有next prev指针,value值的node类。包含若干方法的链表类:其中包含双向链表常用的push_back,pop_back,end(),begin功能Node节点首先针对Node节点,就是很常规的声明一个结构体,因为节...原创 2019-11-12 14:35:33 · 480 阅读 · 0 评论 -
双向链表+迭代器的C++实现
双向链表的概述写链表首先要对链表的构成有一个很好的了解,那么完成一个链表我们需要完成什么呢?节点的定义对于双向链表,每一个节点都与其前驱、后继的连接,那么这个链接我们通过指向节点的指针来完成。指向节点的指针在解引用之后就是一个节点对象。方法的定义双向链表因为具有头与尾,所以需要实现的方法有:在末尾插入,删除元素在链表首部插入、删除元素可以像访问数组元素一样使用[]运算符对...原创 2019-11-07 20:17:53 · 1353 阅读 · 0 评论 -
#11 乘最多水的容器
自己写的代码这道题思路简单,两重循环加遍历即可,但是这么搞效率着实低…class Solution {public: int maxArea(vector<int>& height) { int n = height.size(); int temp = 0, max = 0,min; for (int i = 0; i < n - 1; i++...原创 2019-10-11 10:49:05 · 182 阅读 · 0 评论 -
#9 正则表达式
自己写的代码思路:使用两个变量指示两个不同的string先检查元素是否相等,是否为特殊字符* 与.之后使用循环设置在碰到上述两字符之后开始循环检测我理解错了正则表达式中.的用法!!!是任意匹配一个字符,而不是匹配前面的一个字符!!!.字符匹配一个任意的字符*字符匹配前面0个或者多个字符(可以匹配0个一定要记好)但是吧,我发现我自己写的代码经常栈溢出堆溢出。。。说明对于数组下标使用...原创 2019-10-09 23:27:44 · 266 阅读 · 0 评论 -
#9 回文子串
一半判别法int revertedNumber = 0;while (x > revertedNumber) { revertedNumber = revertedNumber * 10 + x % 10; x /= 10;}return x == revertedNumber || x == revertedNumber/10;回文数是偶数位:那么循环到正中间的时候剩下...原创 2019-10-09 17:03:42 · 71 阅读 · 0 评论 -
#8 字符串转换
事实上原创 2019-10-09 15:32:35 · 543 阅读 · 0 评论 -
#7 字符反转的溢出问题
字符反转的溢出处理把输入的一个数字翻转是一个很简单的问题,算法也很简单在这里需要讨论的是如何处理溢出。预备知识:C/C++中内置了一些设定的数INT_MAX与INT_MIN,这些参数默认了int类型的数据最大值与最小值究竟是多少,在需要的时候可以直接使用。 if (rx>INT_MAX/10 || (rx == INT_MAX / 10 && pop >...原创 2019-10-09 12:43:00 · 236 阅读 · 0 评论 -
#6 Z字形变换
根据移动的思路来建立模型首先这里的z字形其实就是N字形,那么就按照移动的思路来构造解答:每行取一个元素然后下移一行继续存储,然后这样上下移动。要求按行输出那么就创建二维数组来存储第几行与此行的元素。源字符串一次读一个然后下移或上移一行继续输出字符,那么根据这个思路设置一个变量控制数组的变化,以数组仿照真实移动来存储元素。class Solution {public: string...原创 2019-10-09 10:55:11 · 199 阅读 · 0 评论 -
#5 最长回文子串
我写的代码:怎么说吧,自己写的一点算法都没有,完全是暴力穷举,而且没有丝毫的美学存在的,还格外的费事!这么求解时间消耗的太高,很容易就出现超过规定的时间。这种代码很明显的反应了我关于解决问题的方法(????暴力穷举法)这些东西还是太陌生,没有解决问题的概念。class Solution {public: string longestPalindrome(string s) { int j ...原创 2019-10-07 23:11:13 · 123 阅读 · 0 评论 -
#3 无重复字符的最长字串
渣渣写的代码这次编译都通过不了。。。但是根据代码执行窗口来说输出结果是对的,然后思路也比较清晰我写的代码。。。核心思路:使用三个循环,第一个循环控制子串的起始位置,然后第二个循环开始完成子串尾元素的移动,第三个循环开始遍历子串检查尾元素与前面任意一个元素是否重合设置变量存储,一个用于循环内存储另一个用于存储每个循环比较之后得出的比较大的结果。这里是循环内常用的思路。思路其实就是这...原创 2019-10-06 15:43:59 · 83 阅读 · 0 评论 -
#2 链表实现加减法
这次很遗憾,自己连稀烂的代码也写不了了。。。直接粘别人的代码过来学习太难了不使用递归的方法:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} ...原创 2019-10-05 23:41:04 · 2122 阅读 · 0 评论 -
#1 两数之和
在leetcode上使用C++实现两数之和map是使用空间换取时间,同时这里使用查找map中元素的算法很巧妙。首先照例看我自己写的垃圾代码class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int>map1; ...原创 2019-10-05 16:49:35 · 106 阅读 · 0 评论 -
使用map完成文本内的单词转换
#include<iostream> #include<fstream>#include<string> #include<sstream>#include<vector> #include<map>using namespace std;map<string, string> Buildmap...原创 2019-10-03 15:13:40 · 735 阅读 · 0 评论