摘要: 句柄在windows 编程中经常会用到,句柄是什么,句柄其实质是个32位的整数,代表什么? 是某个对象在进程的内存空间中的唯一标识,有点像指针,但不同于指针。下面列举一些经常会用句柄的项目比如说: 模块,文件,实例,内存块,任务,菜单,控制,资源(图标、光标等),字体,GDI对象。 在进程的初始化时,会有开辟一个内存空间,也就是常说的索引项,索引项里的值便是这些项目分配的内存地址的首地址咯,那为什么不直接返回其首地址呢,那是因为 windows是 虚拟内存管理系统,在程序的执行过程中,内存是会移动的,所以首地址会时常更新,而句柄却在整个进程中不会改变。 阅读全文
posted @ 2012-10-20 16:29 wuzhibin 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一,题目 2对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())思路:采用递归的方式进行搜索核心代码:方法一:深度搜索到叶节点后,再判断是否匹配void matchnum1(int nsize,int len,vector<char> &v){ /* cout<<"nsize:"<<nsize<<"len:"<<len<<endl; vector<char>::iterator i; for(i=v.begin();i!=v.end();i+ 阅读全文
posted @ 2012-08-29 15:50 wuzhibin 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 括号匹配(二)时间限制:1000 ms | 内存限制:65535 KB难度:6描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100输出对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行样例输入4 阅读全文
posted @ 2012-08-29 11:00 wuzhibin 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No。样例输入3[(])(])([[]()])样例输出NoNoYes解题思路: 模拟栈操作: 遇到‘(’,‘【‘ 入栈 遇 阅读全文
posted @ 2012-08-29 10:56 wuzhibin 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。#include<stdlib.h>#include<iostream>#include<stdio.h>#include<vector>#include<time.h>#include<set>#include<map>#include<assert.h>#include<s 阅读全文
posted @ 2012-08-27 11:03 wuzhibin 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。#include<stdlib.h>#include<iostream>#include<stdio.h>#include<vector>#include<time.h>#include<set>#include<map>#include<assert.h>#include<string>#include<stack>using namespace std;void find_data 阅读全文
posted @ 2012-08-25 16:02 wuzhibin 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 有两颗二叉树A,B 判断A是否包含B思路: 第一步,在A中找到B的根节点,记录下此时A中的节点,把此节点作为下一步的根节点 第二步,分别从根往下搜索,判断是否会遇到不等的值typedef struct treenode{ int data; struct treenode *left; struct treenode *right;}treenode;int value[100],tnums;//建树void creat_tree(treenode **head,int i){ if(i>tnums-1) *head=NULL; else { treenode *... 阅读全文
posted @ 2012-08-25 10:56 wuzhibin 阅读(223) 评论(0) 推荐(0) 编辑
摘要: #include<stdlib.h>#include<iostream>#include<stdio.h>#include<vector>#include<time.h>#include<set>#include<map>#include<assert.h>#include<string>#include<stack>using namespace std;int maxarray(int *data,int n){ int b; int ans=0; b=data[0]; 阅读全文
posted @ 2012-08-23 16:50 wuzhibin 阅读(415) 评论(0) 推荐(0) 编辑
摘要: void simil(char *str1,char *str2){ int len1=strlen(str1)+1; int len2=strlen(str2)+1; int **d=new int*[len1]; for(int i=0;i<len1;i++) d[i]=new int[len2]; for(int i=0;i<len1;i++) d[i][0]=i; for(int j=0;j<len2;j++) d[0][j]=j; for(int i=1;i<len1;i++) for(int j=1;j<len2;j++) { if(str1[i-1] 阅读全文
posted @ 2012-08-21 15:22 wuzhibin 阅读(151) 评论(0) 推荐(0) 编辑
摘要: void findtext(char **pstr,int len,char **pkey,int l){ int nstart=0,nend=0; int mlen=10000,mstart=0,mend=len-1; bool check=0; while(1) { while(!isin(pstr,len,nstart,nend,pkey,l)&&(nend<len)) { nend++; } while(isin(pstr,len,nstart,nend,pkey,l)) { int tmplen=nend-nstart+1; check=1; if(tmplen 阅读全文
posted @ 2012-08-16 16:06 wuzhibin 阅读(244) 评论(0) 推荐(0) 编辑