- 博客(10)
- 收藏
- 关注
原创 表示数值的字符串
//请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”、//“5e2”、"-123"、"3.1416"及"-1E-16"都表示数值,但“12e”,"1a3.14",“+-5”,"12e+5.4"都不是。#include "iostream"using namespace std;bool isNumber(char* str){ if (str =
2016-06-30 11:07:14 130
原创 正则表达式的匹配
//请实现一个函数用来匹配包含‘.’和‘*’的正则表达式。模式中的字符‘.’表示任意一个字符,//而‘*’表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配//整个模式。f:字符串“aaa”与模式“a.a”和“ab*ac*a”匹配,但与“aa.a”及“ab*a”均不匹配。#include "iostream"using namespace std;boo
2016-06-29 15:51:46 159
原创 数组中重复的数字
//在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道哪几个//数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如://如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。#include "iostream"using namespace std;//hashtable,空间复杂
2016-06-29 15:50:49 225
原创 用C++写一个不能被继承的类
//用c++设计一个不能被继承的类//方法1:把构造/析构函数设为私有,但这样就不能实例化了。//于是定义公有的静态函数来创建和释放类的实例。class sealedClass0{private: sealedClass0() {} ~sealedClass0() {}public: static sealedClass0* GetInstance() { return
2016-06-14 11:43:39 191
原创 不用加减乘除做加法
//写一个函数,求两个整数之和,要求在函数体内不得使用 +,-,*,/ 四则运算符号。#include "iostream"using namespace std;//分三步:1.不算进位相加sum,2.仅算进位carry。3.sum与carry相加,这里循环了,如果carry为0,over。int add(int a, int b){ int sum_without_carry
2016-06-14 11:24:11 145
原创 有限制条件的求1+2+...+n
//求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字//及条件判断语句(A?B:C)//解法1:利用构造函数求解。关键是static的应用。class Temp{private: static unsigned int n; //static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象 s
2016-06-14 10:56:34 334
原创 圆圈中最后剩下的数字
//0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。//求出这个圆圈里剩下的最后一个数字。比如0,1,2,3,4,从0开始每次删除第3个数字,最后剩下3。#include "list"#include "iterator"using namespace std;//传统的环循环找,时间复杂度O(nm),空间复杂度O(n)int LastRe
2016-06-13 20:54:30 248
原创 扑克牌的顺子
//从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。//2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。#include "iostream"using namespace std;//判断,大王小王用0表示 {0, 0, 1(A), 2~10, 11(J), 12(Q), 13(K)}const int maxLength
2016-06-13 17:26:23 301
原创 n个骰子的点数以及出现概率
//把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能//的值出现的概率。#include "stdio.h"#include "cmath"#include "helper.h"using namespace std;//方法1:递归思路。把骰子分成两堆,一堆1个,另一堆n-1个。int diceSurface = 6;void probabili
2016-06-13 11:42:15 630
原创 和为s的两个数字&&和为s的连续正数序列
//问题1:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.//如果有多对数字的和等于s,输出任意一对即可。#include "iostream"using namespace std;bool findNumWithSum(int* a, int n, int s){ if (a == NULL || n <= 0) return false;
2016-06-03 10:28:58 194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人