摘要: 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。对于8位的char型字符而言,总共只有28=256个字符。我们可以新建一个大小为256的数组,把所有元素都... 阅读全文
posted @ 2015-05-16 23:50 balingybj 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。由于题目与字符出现的次数相关,我们可以统计每个字符在该字符串中出现的次数。要达到这个目的,我们需要一个数据容器来存放每个字符的出现次数。在这个数据容器中可以根据字符来查找它出现的次数,也就是说这个容器的作用 是把一个... 阅读全文
posted @ 2015-05-16 23:15 balingybj 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。 要注意分析题目,一般排序要么是O(n^2),要么是O(nlogn)。但这里题目特别强调是对一个公司的员工的年龄作排序。员工的数目虽然有几万人,但这几万员工的年龄却只有几十种可能。上班早 阅读全文
posted @ 2015-05-16 22:30 balingybj 阅读(1360) 评论(0) 推荐(0) 编辑
摘要: 有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:struct ListNode{ int value; ListNode *next; ListNode *sibling; ... 阅读全文
posted @ 2015-05-16 15:07 balingybj 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 带头结点的链表结点定义如下:1 struct ListNode2 {3 int value;4 ListNode *next;5 };代码如下: 1 ListNode* Reverse(ListNode *pHead) 2 { 3 ListNode *pReverse = N... 阅读全文
posted @ 2015-05-16 14:35 balingybj 阅读(209) 评论(0) 推荐(0) 编辑