摘要: 1. 题目:给定一个字符串,单词以' '或'\t'间隔,返回字符串中的单词个数。如输入:"\t ab\tc drf e ffrt\tert",输出为6。2. 解答: (1)我的思路:遍历字符串,遇到非' '或'\t',则count++,然后while循环跳过之后的所有非' '或'\t';如果是' '或'\t',然后while循环跳过所有的' '或'\t'。这样每次遇到非' '或'\t' 阅读全文
posted @ 2012-08-09 16:55 kasuosuo 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 1. 使用C代码去除字符串中的空格,void removeSpace(char* str)2. 解析: (1)主要考察C编程功底 (2)需要注意的问题:代码书写方式,整洁书写代码。 (3)虽然是一道简单的题目,但是很考察基础能力。3. 代码:View Code 1 #include <iostream> 2 #include <cassert> 3 4 using namespace std; 5 6 //这中编码方式存在错误 7 void removeSpace1(char *str) { 8 char *p1 = str, *p2 = str; 9 cout... 阅读全文
posted @ 2012-08-09 16:00 kasuosuo 阅读(948) 评论(0) 推荐(0) 编辑
摘要: 1. 题目:如何判断一个点在三角形内部?2. 解析: (1)方法1:面积法,如下面两幅图所示,图(a)点O在ABC外侧,面积S(ABO)+S(ACO)+S(BCO)>S(ABC);图(b)点O在ABC内部,S(ABO)+S(ACO)+S(BCO)=S(ABC)。由此可以使用面积法来判断点是否在三角形内侧。 (2)方法2:三角形的边做逆时针标准,如下图。如果点在三角形内,则点必然在射线AB,BC,CA的左侧;如果点在三角形外,则点必在某条射线的右侧。 (3)方法3:从点O水平向左作一条射线,并计算与三角形各条边是否相交。如果相交的边数为奇数,则点在三角形内部;如果相... 阅读全文
posted @ 2012-08-09 10:37 kasuosuo 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 1. 题目:找出两个有序数组的交集。2. 解析:给定数组a和b,a的长度为m,b的长度为n (1)最原始的方法,依次遍历a中每一个元素,并通过遍历b来判断a中元素是否在b中。时间复杂度O(m×n) (2)改进的算法,在b中查找a的元素改为二分查找,时间复杂度为O(mlgn) (3)因为a和b都是有序的,遍历a和b,并对a和b中的元素进行判断,如果a[i]<b[j] i++, 如果a[i]>b[j] j++, 如果a[i]==b[j] i++, j++。时间复杂度为O(m+n)3. 分析: (1)当m很小,n很大时,O(mlgn)二分法查找的效率高于线性查找的O(m+n), 阅读全文
posted @ 2012-08-09 09:58 kasuosuo 阅读(194) 评论(0) 推荐(0) 编辑