摘要:
题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,则输出它们的长度4,并打印任意一个子串。分析:求最长公共子串(Longest Common Subsequence, LCS)是一道非常经典的动态规划题,因此一些重视算法的公司像MicroStrategy都把它当作面试题。这个问题的详细分析见《算法导论》1 阅读全文
posted @ 2012-07-11 22:20
wolenski
阅读(299)
评论(0)
推荐(0)
摘要:
题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。链表结点定义如下:1 struct ListNode2 {3 int m_nKey;4 ListNode* m_pNext;5 };分析:这是一道广为流传的微软面试题。由于这道题能够很好的反应出程序员思维是否严密,在微软之后已经有很多公司在面试时采用了这道题。为了正确地反转一个链表,需要调整指针的指向。与指针操作相关代码总是容易出错的,因此最好在动手写程序之前作全面的分析。在面试的时候不急于动手而是一开始做仔细的分析和设计,将会给面试官留下很好的印象,因为在实际的软件开发中,设计的时间总是比写... 阅读全文
posted @ 2012-07-11 10:20
wolenski
阅读(166)
评论(0)
推荐(0)
摘要:
题目:某队列的声明如下: 1 template<typename T> class CQueue 2 { 3 public: 4 CQueue() {} 5 ~CQueue() {} 6 7 void appendTail(const T& node); // append a element to tail 8 void deleteHead(); // remove a element from head 9 10 private:11 T> m_stack1;12 T> m_stack2... 阅读全文
posted @ 2012-07-11 10:11
wolenski
阅读(212)
评论(0)
推荐(0)
浙公网安备 33010602011771号