C++
文章平均质量分 60
Bryan要加油
这个作者很懒,什么都没留下…
展开
-
C++ 静态类型、动态类型与多态
//inherit.h#include <iostream>#include <string>class grandfather{public: bool start(std::string name = "");protected: virtual bool init() = 0; };class father : publ...原创 2019-12-04 19:48:28 · 295 阅读 · 0 评论 -
strtok
functionstrtokchar * strtok ( char * str, const char * delimiters );Split string into tokensA sequence of calls to this function split str into tokens, which are sequences of conti原创 2014-05-20 23:25:30 · 476 阅读 · 0 评论 -
C++函数模板与类模板
Stack.h#ifndef STACK_H#define STACK_Htemplateclass Stack{public: Stack(int = 10); ~Stack() { delete [] stackPtr; } bool push(const T&); bool pop(T&); bool isEmpty() const { return原创 2014-06-03 23:43:34 · 432 阅读 · 0 评论 -
随机生成N个1至100的整数,N由用户给定,程序输出出现次数最多的整数及其出现次数。如果有多个并列最多,需要输出全部最多的整数。
随机生成N个1至100的整数,N由用户给定,程序输出出现次数最多的整数及其出现次数。如果有多个并列最多,需要输出全部最多的整数。原创 2014-05-21 00:04:54 · 5311 阅读 · 0 评论 -
求两个数的最大公约数与最小公倍数
最大公约数,#include using namespace std;int RecGCD(int a,int b){ if(a < b) { int tmp = a; a = b; b = tmp; } if(b==0) return a; else return RecGCD(b,a%b);}int NonRecGCD(int原创 2014-06-04 13:32:39 · 563 阅读 · 0 评论 -
终于知道怎么调试动态数组了。。
昨天和一个同学讨论了关于动态分配的数组调试的问题。动态分配数组最直接也是最原始的方法就是使用动态分配内存空间的指针,如下代码://动态分配一个行为2,列为2的2维数组,成员值分别是1,2,3,4int rows, cols;//行和列都设置成2rows = cols = 2;//数组头指针int **a;//使用malloc分配空间a = (int **)mallo转载 2014-05-22 15:53:57 · 2695 阅读 · 1 评论 -
CString与string,char*的相互转换
CString转string和char*#include #include #include "afx.h"using namespace std;int main(){ CString cStr("CString"); //convert a CString to string string s = CW2A(cStr); //convert a CString to原创 2014-06-24 00:31:10 · 569 阅读 · 0 评论 -
STL各个容器支持的函数
dequelistvectormapmultimapqueuepriority_queuesetmultisetstackassignassignassignatatatbackbackbackbackbeginbeginbeginbeginbeginbeginb原创 2014-06-24 23:18:04 · 783 阅读 · 0 评论 -
单词翻转
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。原创 2014-06-06 09:24:49 · 557 阅读 · 0 评论 -
旋转字符串
给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符“ab” 移动到字符串的尾部,即变成“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/mas原创 2014-06-06 09:12:47 · 430 阅读 · 0 评论 -
从文件读字符串,提取其中的数字,然后进行集合划分
首先从文件“data.txt”中读取数据。data文件中的数据由字母、数字等元素组成(以空格分隔)。请从这些数据中识别出所有的数字,并将其组成一个集合。如果这些数字的和为偶数,就将这个集合中的数字划分为两个子集合,使得每部分的和相等,试求出所有的划分。如果这些数字的和为奇数,则将这个集合中的数字划分为两个子集合,使得每部分的和相差1,试求出所有的划分。最后的结果输出到“result.txt”中。如原创 2014-05-22 23:53:47 · 1557 阅读 · 0 评论 -
判断一个数是否为素数&求1到某一个数之间的所有素数
判断一个数是否为素数原创 2014-06-25 23:47:51 · 1645 阅读 · 0 评论 -
八皇后问题
1.引子 中国有一句古话,叫做“不撞南墙不回头",生动的说明了一个人的固执,有点贬义,但是在软件编程中,这种思路确是一种解决问题最简单的算法,它通过一种类似于蛮干的思路,一步一步地往前走,每走一步都更靠近目标结果一些,直到遇到障碍物,我们才考虑往回走。然后再继续尝试向前。通过这样的波浪式前进方法,最终达到目的地。当然整个过程需要很多往返,这样的前进方式,效率比较低下。2.适用范原创 2014-06-26 09:31:26 · 549 阅读 · 0 评论 -
最长公共子序列(LCS)
0、前言 程序员编程艺术系列重新开始创作了(前十章,请参考程序员编程艺术第一~十章集锦与总结)。回顾之前的前十章,有些代码是值得商榷的,因当时的代码只顾阐述算法的原理或思想,所以,很多的与代码规范相关的问题都未能做到完美。日后,会着力修缮之。 搜遍网上,讲解这个LCS问题的文章不计其数,但大多给读者一种并不友好的感觉,稍感晦涩,且代码也不够清晰。本文力图避免此些情况。力转载 2014-06-26 19:18:51 · 597 阅读 · 0 评论 -
最长递增子序列(LIS)
题:求一个一维数组arr[i]中的最长递增子序列的长度,如在序列1,-1,2,-3,4,-5,6,-7中,最长递增子序列长度为4,可以是1,2,4,6,也可以是-1,2,4,6。像LCS一样,从后向前分析,很容易想到,第i个元素之前的最长递增子序列的长度要么是1(单独成一个序列),要么就是第i-1个元素之前的最长递增子序列加1,可以有状态方程:LIS[i] = max{1,LIS[转载 2014-06-26 19:51:23 · 473 阅读 · 0 评论 -
找出一个字符串中的最长奇数回文。在控制台输入输出。
找出一个字符串中的最长奇数回文。在控制台输入输出。例如,字符串mabcbatqabccba中,最长回文为abcba,类似abccba不算.原创 2014-05-22 15:37:31 · 1303 阅读 · 0 评论 -
STL-set
STL-set简介set是一种随机存储的关联式容器,其关键词(key)和元素(value)是同一个值。set之中所有元素互不相同。set是通过二叉查找树来实现的。创建创建一个空的set1: set s0 ;创建一个带大于比较器的set, 默认是小于比较器less1: set> s1 ;用数组初始化一个set1: int a[3] = {1转载 2014-06-27 10:48:31 · 455 阅读 · 0 评论 -
在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
如123a4b6c7 ------> 1234567 全排列,注意去除重复的排列,如111--->输出只有 111原创 2014-06-28 19:54:29 · 1016 阅读 · 0 评论 -
从字符串中找到第一个只出现一次的字符
#include using namespace std;void FirstNotRepeat(char *s ){ if (s == NULL) { return; } int hashTable[256] = {0}; bool flag = false; char * cur = s; while(*cur != '\0') { hashTable[原创 2014-06-09 14:50:43 · 1023 阅读 · 0 评论 -
从文件中读入文本,文本内容为几个字符串,用逗号间隔,将其中同时含有字母和数字的字符串去除,留下仅仅只包含字母或数字的字符串,然后进行排序
从文件中读入文本,文本内容为几个字符串,用逗号间隔,将其中同时含有字母和数字的字符串去除,留下仅仅只包含字母或数字的字符串,然后进行排序,排序规则如下:(1) 数字的串按数字大小排序(2) 字母的串按ASCII码排序(3) 所有数字排在字母前最后将结果输出的文件中。例如:hello, He, 1b, 2b, 55, 9, 6b ----> 9 55 He h原创 2014-06-28 20:22:39 · 1400 阅读 · 0 评论 -
对称子字符串的最大长度
输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。提示:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。找出一个字符串中的最长奇数回文。在控制台输入输出。#include #include using namespace std;boo原创 2014-06-09 15:26:28 · 741 阅读 · 0 评论 -
逆序输出链表
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};原创 2014-06-09 16:29:23 · 963 阅读 · 0 评论 -
将一个字符串中的空格全部替换为“%20”
string ReplaceSapces(const string &s){ string retStr; if(s.length() == 0) return retStr; int spaceCount = 0; //统计输入字符串中空格的个数 for(string::const_iterator it = s.begin();it!= s.end();it++) if((原创 2014-05-29 09:38:44 · 1748 阅读 · 0 评论 -
利用字符出现的次数,编写一个方法,实现基本的字符串压缩功能。
利用字符出现的次数,编写一个方法,实现基本的字符串压缩功能。string StringCompress(const string &s){ string retStr; if(s.length() == 0) return retStr; char tmpChar = s.at(0); int charCount = 0; for(string::const_ite原创 2014-05-29 10:18:54 · 3085 阅读 · 0 评论 -
最长公共子序列
动态规划,众所周知,第一步就是找子问题,也就是把一个大的问题分解成子问题。这里我们设两个字符串A、B,A = "a0, a1, a2, ..., am-1",B = "b0, b1, b2, ..., bn-1"。(1)如果am-1 == bn-1,则当前最长公共子序列为"a0, a1, ..., am-2"与"b0, b1, ..., bn-2"的最长公共子序列与am-1的和。长度为"a原创 2014-06-15 18:46:21 · 697 阅读 · 0 评论 -
Reverse Words in a String
Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Clarification:What constitutes原创 2014-06-15 22:19:55 · 600 阅读 · 0 评论 -
Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.原创 2014-07-06 23:36:41 · 461 阅读 · 0 评论 -
压缩字符串中的空格
若输入" a b c "原创 2014-06-16 15:30:27 · 2210 阅读 · 0 评论 -
字符串的移动
字符串为*号和26个字母的任意组合,把 *号都移动到最左侧,把字母移到最右侧并保持相对顺序不变,要求时间和空间复杂度最小。原创 2014-06-19 11:16:20 · 919 阅读 · 0 评论 -
华为2012.09.03浙大机试题 去掉字符串中的重复字符,字符串中重复字符的压缩,根据输入计算字符串结果
1、通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);原创 2014-06-19 10:24:46 · 945 阅读 · 0 评论 -
三色旗排序
题目描述现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右,依次是一些红球、一些白球、一些蓝球。这个问题之所以叫荷兰国旗,是因为我们可以将红白蓝三色小球想象成条状物,有序排列后正好组成荷兰国旗。如下图所示:分析与解法初看此题,我们貌似除了暴力解决并无好的办法,但联想到我们所熟知的快速排序算法呢?我们知道,快速排序原创 2014-06-22 20:35:58 · 3395 阅读 · 0 评论 -
如何创建map
使用比较类和函数指针指定排序的方式// constructing maps#include #include bool fncomp (char lhs, char rhs) {return lhs<rhs;}struct classcomp { bool operator() (const char& lhs, const char& rhs) const {return原创 2014-06-22 21:23:04 · 1360 阅读 · 0 评论 -
C++中string与char *的转换
c++中string转为char *1.2.3.string s = "This is a test string.";char *tmp = new char[s.length() + 1];s.copy(tmp,s.length());原创 2014-06-23 00:22:43 · 674 阅读 · 0 评论 -
Bitwise AND of Numbers Range
Given a range [m, n] where 0 For example, given the range [5, 7], you should return 4.class Solution {public: int rangeBitwiseAnd(int m, int n) { int offset = 0; while(m !原创 2015-04-22 11:28:49 · 585 阅读 · 0 评论 -
House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house原创 2015-04-22 09:26:31 · 307 阅读 · 0 评论 -
Combination Sum II
class Solution {public: vector > combinationSum2(vector &num, int target) { sort(num.begin(), num.end()); vector > ret; vector cur; Helper(ret, cur, num, target, 0原创 2015-04-22 16:10:31 · 352 阅读 · 0 评论 -
Jump Game II
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Your goal i原创 2015-04-24 16:28:41 · 355 阅读 · 0 评论 -
Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Determine i原创 2015-04-24 16:33:36 · 557 阅读 · 0 评论 -
Maximum Gap
Given an unsorted array, find the maximum difference between the successive elements in its sorted form.Try to solve it in linear time/space.Return 0 if the array contains less than 2 elements原创 2015-04-24 16:39:21 · 411 阅读 · 0 评论 -
Scramble String
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.Below is one possible representation of s1 = "great": great / \ gr原创 2015-04-24 16:59:48 · 540 阅读 · 0 评论