- 浏览: 143372 次
-
最新评论
文章列表
一,字符串转化
将字符串转换成整数:atoi
将整数转换为字符串:itoa
浮点数与字符串的转换
1)字符串转化为整数
需要注意的地方:
考虑要缜密,注意是否为数字字符;
判断是否为NULL
开头的‘+’‘-’符号的判断
#include "stdio.h"
#include "string.h"
#include "assert.h"
int isDigit(char c)
{
if(c>='0'&&c<='9')
return 1;
e ...
- 2012-08-15 00:40
- 浏览 633
- 评论(0)
序:刘翔今天再一次倒在起跑线上,我作为翔子的Fans,盯着屏幕看刘翔起跑,当他第一个栏摔倒时,我的心碎了,情绪异常低落,久久难以平复。然后给老爸发短信抱怨:刘翔退赛了,为什么又是因伤退赛?我难受。老爸轻 ...
- 2012-08-15 00:33
- 浏览 810
- 评论(0)
一,问题:n个拿着1元,n个人拿着2元去买票。票价一元,且售票元只能用n个人购票的一元给2元的找零。问有几种排列方法
分析:卡特兰数方法
递推公式:F(2*n) =F(0)*F(2(n-1)) +F(1)*F(2(n-2))+……+F(2(n-1))*F(0)
F(n) =F(0)*F(n-1) +F(1)*F(n-2)+……+F(n-1)*F(0)
解答:
所有序列的个数 :C (2n,n) (ps:由于数学函数难打,这里表示从2n个位置中挑选n个存放1)
非法序列的个数 ...
- 2012-08-07 10:47
- 浏览 719
- 评论(0)
一,问题:
1. 给定一个源区间[x,y]和N个无序的目标区间[x1,y1] [x2,y2] ... [xn,yn],判断源区间[x,y]是不是在目标区间内。
2. 给定一个窗口区域和系统界面上的N个窗口,判断这个窗口区域是否被已有的窗口覆盖。
二,解法:
问题一:
先用区间的左边界值对目标区间进行排序O(nlogn),对排好序的区间进行合并O(n),对每次待查找的源区间,用二分查出其左右两边界点分别处于合并后的哪个源区间中O(logn),若属于同一个源区间则说明其在目标区间中,否则就说明不在。
#include <iostream>
#include < ...
- 2012-08-04 10:26
- 浏览 1763
- 评论(0)
一,问题:
1. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为两个子数组,子数组的元素个数不限,并使两个子数组之和最接近。
2. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组之和最接近。
二,分析:
假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:
S(k, 1) = {A[i] | 1<= i <= k}
S(k, k) = {A[1]+A ...
- 2012-08-03 22:25
- 浏览 676
- 评论(0)
一、SQL语句
(1)Select 查询语句
语法:SELECT [ALL|DISTINCT] <目标列表达式> [AS 列名]
[,<目标列表达式> [AS 列名] ...] FROM <表名> [,<表名>…]
[WHERE <条件表达式> [AND|OR <条件表达式>...]
[GROUP BY 列名 [HAVING <条件表达式>]]
[ORDER BY 列名 [ASC | DESC]]
解释:[ALL|DISTINCT] ALL:全部
DISTINCT:不包括重 ...
- 2012-08-02 00:54
- 浏览 630
- 评论(0)
微软的一道面试题:
如:abcbcbcabc,这个连续出现次数最多的字串是bc
一,考虑边界问题。
二,实现优化笛卡尔积组合,
总体我是这样想的:就是纵向切出字符串的连续组合集合,在横向一对一跳跃比较集合元素。
例如:abcbcabc<wbr><br>
一,纵向切:<br>
得到所有字符串组合,注意:这里要求的是最多连续子字符串,其实就是优化笛卡尔积的原则,也是边界。<br><wbr><span></span>字符串共8位,以子串的长度为1,从字符串第一位开始切,且称为切:<b ...
- 2012-07-28 23:43
- 浏览 1168
- 评论(0)
一,printf
1)作用:产生格式化输出的函数(定义在 stdio.h 中)。
2)用法:int printf(const char *format,[argument]);
format 参数输出的格式,定义格式为:%[flags] [width] [.perc] [F|N|h|l] type
规定数据输出方式,具体如下:
1.type 含义如下:
d 有符号10进制整数
i 有符号10进制整数
o 无符号8进制整数
u 无符号10进制整数
x 无符号的16进制数字,并以小写abcdef表 ...
- 2012-07-25 15:35
- 浏览 776
- 评论(0)
int、char、short等非浮点数在内存中是按照补码的形式存储的。
1)按位取反(~)
单目运算符,参与运算的数和结果均以补码方式出现。
功能:各位取反,如果首位为1则其真实值为:除符号位外,各位取反末尾加1。
示例:~100 = - 101
(100) 的二进制表示为: 0110 0100
~100 的二进制表示为: 1001 1011
所以等号左边=1001 1011
由于int、char、short均按照补码存储,则实际数为:1110 0100 = -101
2)按位与(&a ...
- 2012-07-25 15:19
- 浏览 675
- 评论(0)
一,强制类型转换
当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。强制类型转换不改变原来数据的类型。
C++中强制类型转换函数有4个:
const_cast(用于去除const属性)
static_cast(用于基本类型的强制转换)
dynamic_cast(用于多态类型之间的类型转换)
reinterpreter_cast(用于不同类型之间的指针之间的转换,最常用的就是不 ...
- 2012-07-24 17:41
- 浏览 1385
- 评论(0)
序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数
一,默认构造函数
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。
如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,称为合成的构造函数(synthesized default constructor)。
C++语言为类提供的构造函数可自动完成对象的初始化任务
...
- 2012-07-24 14:43
- 浏览 854
- 评论(0)
一,构造函数与析构函数auto_ptr在构造时获取对某个对象的所有权(ownership),在析构时释放该对象。我们可以这样使用auto_ptr来提高代码安全性:int* p = new int(0);auto_ptr<int> ap(p);从此我们不必关心应该何时释放p, 也不用担心发生异常会有内存泄漏。
这里我们有几点要注意:
1) 因为auto_ptr析构的时候肯定会删除他所拥有的那个对象,所有我们就要注意了,一个萝卜一个坑,两个auto_ptr不能同时拥有同一个对象。像这样:int* p = new int(0);auto_ptr<int> ap1(p); ...
- 2012-07-22 10:19
- 浏览 638
- 评论(0)
一,入门
const 指针
指针指向的内容不能变,指针可以改变指向
指向const的指针
指针不可以改变指向,指针指向内容可以变
#include "stdio.h"
int main()
{
//const 指针 (指针指向的内容不能变,指针可以改变指向)
int a = 5;
int b = 6;
const int *ptr = &a;
*ptr = 8; //error
ptr = &b; //ok;
//指向const的指针 (指针不可以改变指向 ...
- 2012-07-21 21:53
- 浏览 642
- 评论(0)
一,函数指针
1)定义:指向函数的指针变量。“函数指针”本身是指针变量,该指针变量指向函数。
2)区别:这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
3)说明:C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。
4)用途:函数指针有两个用途:调用函数和做函数的参数。
5)函数指针的声明方法为:
函数类型 (标志符 指针变量名) (形参列表)
注1:“函数类型”说明函数的返回类型,
“(标志 ...
- 2012-07-21 21:13
- 浏览 341
- 评论(0)
一,要求:自己动手编写 atoi(char *str)函数,功能是将字符串变成数字
简单版本:
需要考虑的地方 1)正负号
2)仅仅考虑十进制
3)如何把数字 字符 变成整数
#include <iostream>
using namespace std;
int StrToInt(char * str)
{
int value = 0;
int sign = 1;
if(*str == '-')//负号
{
sign = -1;
str++;
}
while ...
- 2012-07-19 22:41
- 浏览 643
- 评论(0)