程序员编程艺术
cyxHehui
这个作者很懒,什么都没留下…
展开
-
程序员编程艺术---4、常用字符串函数的编写
第一节、字符串查找1.1题目描述:给定一个字符串A,要求在A中查找一个子串B。如A="ABCDF",要你在A中查找子串B=“CD”。分析:比较简单,相当于实现strstr库函数,主体代码如下:char strStr(char *string ,char *subString){ int length1 = strlen(string); int length2转载 2014-02-22 10:27:46 · 840 阅读 · 0 评论 -
程序员编程艺术----1、左旋转字符串
题目描述:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdef左旋转两位得到字符串cdefab.请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。方法1:直接移位法。void ShiftString(char *str, int length, int m){ char tmp; for(i原创 2014-02-21 20:22:37 · 615 阅读 · 0 评论 -
程序员编程艺术--2、字符串包含问题
题目描述:假设这有一个各种字母组成的字符串A,和另外一个字符串B,字符串里B的字母数相对少一些。什么方法能最快的查出所有小字符串B里的字母在大字符串A里都有?比如,如果是下面两个字符串:String 1: ABCDEFGHLMNOPQRSString 2: DCGSRQPO答案是true,所有在string2里的字母string1也都有。 如果是下面两个字符串:原创 2014-02-21 21:16:40 · 663 阅读 · 0 评论 -
程序员编程艺术--->6、关于链表的追赶问题
本章主要涉及链表的相关检测问题,诸如:链表的倒数第k个结点检测链表是否带环两链表是否相交而此类问题,如果用直观的想法去做的话,无疑时间复杂度不太可观,因此可以继续寻求更加的解决方案。下面就这些问题展开来谈。1、求链表的倒数第k个结点 解析:(1)两次遍历链表,第一次求出链表的长度,第二次找出n-k个结点,便是倒数第k个结点。 (2)既然要尔链表的倒数第k原创 2014-02-22 21:22:21 · 676 阅读 · 0 评论 -
程序员编程艺术--7、全排列,跳台阶,奇偶调序
1、字符串的排列。题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。 分析:此题最初整理于去年的微软面试100题中第53题,第二次整理于微软、Google等公司非常好的面试题及解答[第61-70题] 第67题。无独有偶,这个问题今年又出现于今年的转载 2014-02-22 22:15:47 · 971 阅读 · 0 评论 -
程序员编程艺术---5、寻找满足和为定值的两个或多个数
1、寻找和为定值的两个数题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的数字。解析:(1)可以用穷举法,从数组中任取两个数,看其和是否是该数字。但是O(N)=O(n^2)(2)可以同时从数组首元素a[i] 和尾元素a[j] 之和遍历,如果>sum,j--; 如果#include "stdafx.h"#include using namespace s原创 2014-02-22 17:08:05 · 1792 阅读 · 0 评论