
挑战面试编程
文章平均质量分 81
苏叔叔
Isolation is not good for me!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
挑战面试编程:链表逆转的多种实现
链表逆转的多种实现 链表的逆转是一种常见又较复杂的操作,下面使用多种方式进行实现:while、递归以及goto。原创 2014-10-23 23:09:01 · 2900 阅读 · 0 评论 -
挑战面试编程:字符串转换为整数
挑战面试编程:字符串转换为整数 将类似这样的字符串,"abc123abc"转换为整数,即为123。若是"abc",则直接输出0。 本题看似很简单,但有些地方还得注意: 字符串中可能带有符号,如'+' '-',这得考虑。 该整数位可能很长,所以必须能够处理溢出的情况:对于过大的,输出MAX_INT;对于过小的,输出MIN_INT。 代码原创 2014-05-07 22:48:29 · 1561 阅读 · 0 评论 -
挑战面试编程:计算整数二进制位中1的个数
题目: 在计算机中,整数是以2的补码的形式给出的。 给出整数A和B,假设计算机是32位机,求从A到B之间的所有二进制数中,一共用了多少个1。 输入格式: 多组数据,每组数据一行,由两个整数A,B, -2147483648<=A<=B<=2147483647 输出格式: 每组输出一行,从A到B使用的1的个数。(本题取自csdn高校俱乐部线上编程挑战赛) 分析: 我们知道任何数据在计算机中都是用二进制表示的,即用一堆0或1表示各种类型的数据。当然还要考虑它的字节数,例如在32位机中。sizeof原创 2014-05-07 21:22:20 · 2348 阅读 · 4 评论 -
挑战面试编程:左移字符串
挑战面试编程:左移字符串 问题描述: 左移字符串:如有字符串“abcdefg”,可把它看作是一首尾相连的字符串,左移三个字符后,变为“defgabc”,请编程实现。 方法一: 利用额外的内存空间,实现中转。 步骤1:把“abc”存储到额外空间; 步骤2:把“defg”移动到字符串的首部。至此,“defg”到达最终位置。 步骤3:把“abc”strcat到“defg”的尾部。原创 2015-06-17 18:04:29 · 1579 阅读 · 0 评论 -
挑战面试编程:最大连续子序列和
挑战面试编程:最大连续子序列和 问题 对于形如:int arr[] = { 1, -5, 3, 8, -9, 6 };的数组,求出它的最大连续子序列和。 若数组中全部元素都是正数,则最大连续子序列和即是整个数组。 若数组中全部元素都是负数,则最大连续子序列和即是空序列,最大和就是0。 方法一 用sum[i,j]表示arr[i]到arr[j]的和,则显然可以通过枚举(i<=j),求出所有的和。原创 2014-05-08 00:29:25 · 1838 阅读 · 0 评论 -
挑战面试编程:回文串、回文数字
回文(palindrome)问题是一个很常见的问题。回文现象是指从左到右和从右到左阅读是一样的串或数字。例如串:"abcba"、数字:121。 串的回文问题 一、从首尾向中间递进 二、从中间向首尾递进 复杂度分析 因为最多只需遍历一次串,所以以上两种方法的时间复杂度都是O(n)。只使用到了两个int型的变量充当指针,故空间复杂度都是O(1)。原创 2014-08-10 11:20:56 · 4345 阅读 · 1 评论 -
挑战面试编程:大整数的加、减、乘、除
大整数的加、减、乘、除 一切都是有限的,哪怕是看起来无限的时间或空间都很可能是有限的。在计算机中内置类型的加、减、乘、除都是有限的。我们来实现一个“无限”的大整数加、减、乘、除。 以下使用C++代码实现原创 2015-06-10 10:59:15 · 4892 阅读 · 2 评论 -
挑战面试编程:十六进制数转化为八进制数
挑战面试编程:十六进制数转化为八进制数 题目: 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应的八进制正整数。 注意 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。 样例输入 2 39 123ABC 样例输出 71 443原创 2015-03-17 23:19:15 · 2619 阅读 · 0 评论 -
挑战面试编程:字符串匹配的双重递归式写法
字符串匹配的双重递归式写法 字符串的匹配有很高效的KMP、Sunday等算法,可供使用。下面使用的匹配算法本质上是朴素的,但它的双重递归式的写法仍然值得借鉴。原创 2014-09-24 11:43:06 · 2015 阅读 · 0 评论 -
挑战面试编程:原码、反码、补码
原码、反码、补码是关于整数在计算机中的三个概念。 在计算机中,对于整数是这样存储的,在所有的二进制位中用一位(最高位)当做符号位,约定0表示正数,1表示负数,其余的是数值位。需要指出正数的原码、反码、补码都是一样的。对于sizeof(int)为4的环境, 1 的二进制是 0000 0000 0000 0000 0000 0000 0000 0001 (原码) -1的二进制是 1000 0000 0000 0000 0000 0000 0000 0001 (原码) 反码 反码则规定为相对于原码符号位不变,数值原创 2014-09-22 17:16:13 · 2263 阅读 · 0 评论 -
挑战面试编程:单词翻转、高斯公式、魔方矩阵、黑白球、3n+1
题一: 把一字符串如"I love you."变为"you. love I"。 题二: 高斯在上小学时发明了等差数列求和公式:1+2+..+100=5050。现在问题在于给你一个正整数n,问你他可以表示为多少种连续正整数之和?(自身也算)。(取自csdn高校俱乐部线上编程挑战赛) 题三: 打印魔方矩阵:如三阶的: 8 1 6 3 5 7 4 9 2 规律是: 题四 黑白球 一个袋子里有两种颜色的球,黑色和白色,你每次从中取出两个球,如果是同色的,则在袋子里放一个白球,否则放回一个原创 2014-05-08 17:26:35 · 2220 阅读 · 1 评论 -
挑战面试编程:字符串包含
字符串查找是在一个大的文本中查找一个给定的模式串,常用的算法有KMP、BM、Sunday等。而字符串包含要求比较低:只要字符包含就行,不需要连续。 例如,S="abcd",T="ac",做查找运算,则T不在S中;做包含运算,T包含在S中。原创 2014-08-15 20:51:08 · 1565 阅读 · 1 评论 -
挑战面试编程:字符串替换
字符串替换 写一个字符串替换函数,如母串"123123123123",把母串中的子串"123",替换为"12345",或者"12"。 思路: 利用库函数strstr(),定位子串。使用strcpy()进行替换。不断重复着定位和替换操作,直到定位到NULL为止。原创 2014-09-17 00:07:04 · 2694 阅读 · 2 评论 -
挑战面试编程:查找数组中第k大的数
查找数组中第k大的数 问题: 查找出一给定数组中第k大的数。例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8…… 思路: 1. 直接从大到小排序,排好序后,第K大的数就是arr[k-1]。 2. 只需找到第k大的数,不必把所有的数排好序。我们借助快速排序中partition过程,一般情况下,在把所有数都排好序前,就可以找到第k大的数。我们依据的逻辑是,经过一次原创 2016-01-08 16:33:23 · 5714 阅读 · 5 评论