两个面试题(atoi, lgn)

原创 2007年10月14日 17:03:00
前两天的面试题。

atoi:
int atoi(char* s){ int index = 0; int sign = 1; int ret = 0; if(s[index] == '-'){ sign = -1; index++; } while(s[index++] != '/0') ret = ret * 10 + s[index] - 48; return ret }

给定整数n,求最接近n的2的幂。
根据n的二进制表示来做,即所求的数是保留n的最高为1的位,将其余的位清0。
java标准库的函数如下:
    public static int highestOneBit(int i) {
        // HD, Figure 3-1
        i |= (i >>  1);
        i |= (i >>  2);
        i |= (i >>  4);
        i |= (i >>  8);
        i |= (i >> 16);
        return i - (i >>> 1);
    }

一道经典面试题,atoi函数的实现

参考: (1)atoi函数的实现 (2)《剑指offer》 本体
  • duqi_2009
  • duqi_2009
  • 2014年04月13日 11:19
  • 1572

atoi函数的详细实现(考虑溢出)

atoi()函数的功能:将字符串转换成整型数。atoi()会扫描参数str字符串,跳过前面的空白字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返...
  • sxh850297968
  • sxh850297968
  • 2015年08月14日 11:37
  • 2378

C语言中的atoi函数的实现

C语言中有很多的库函数,其实平时没事的时候多去实现一下里面的库函数还是很有用的,下面就来讲一讲C语言中的atoi函数,这个函数的主要功能是将一个字符串转化为一个数字,可能第一眼看上去,你会觉得这是一个...
  • Loving_Forever_
  • Loving_Forever_
  • 2016年04月30日 11:00
  • 4923

面试题atoi的模拟实现

atoi函数:用来把一个字符串转换为整数,在模拟实现应注意以下几点: 1.检查字符串是否为空字符串; 2.区分空字符串与0字符返回值结果,这里用一个全局变量globle来区分; 3.考虑字符串的...
  • L_XRUI
  • L_XRUI
  • 2016年12月30日 12:12
  • 489

【面试题】剑指Offer-49-模拟实现atoi()函数

题目概述 解题思路 就像本篇博文的题目所介绍的那样 这道题目就是让模拟实现atoi函数 结合库中的atoi函数,我们需要处理的情况有以下几种 各种情况分析 情况1:正常情况,给的字...
  • qq_31828515
  • qq_31828515
  • 2017年04月22日 15:45
  • 374

在两个有序的数组中找第N个数,二分查找 O(lgm+lgn)级

 在两个有序的数组中找第N个数,O(lgm+lgn)级 分类: 算法2009-10-09 20:52 981人阅读 评论(3) 收藏 举报 问题描述: Give a...
  • zhtiloveyou
  • zhtiloveyou
  • 2014年09月18日 19:38
  • 465

算法题----称硬币: 2n(并不要求n是2的幂次方)个硬币,有两个硬币重量为m+1, m-1, 其余都是m 分治 O(lgn)找出假币

Description: 有2n个硬币和一个天平,其中有一个质量是m+1, 另一个硬币质量为m-1, 其余的硬币质量都是m 算法1:O(n)算法 将2n个硬币分成n组(每组2个)进行称量: 结果只...
  • u012653791
  • u012653791
  • 2013年12月07日 16:00
  • 2486

O(lg m + lgn)时间复杂度求两个有序序列合并后第K大的数

【题意】:Give a divide and conquer algorithm for the following problem: you are given two sorted lists o...
  • mupenghaha
  • mupenghaha
  • 2013年04月22日 18:39
  • 682

用O(lgn)时间求出两个已排序数组的中位数

相关问题: 设 x[1..n]和Y[1..n]为两个数组,每个都包含n个已排序的数。给出一个求数组X和Y中所有2n个元素的中位数的O(lgn)时间的算法。 思考过程:         开始我想把两个...
  • z84616995z
  • z84616995z
  • 2014年02月05日 12:07
  • 2062

剑指offter-面试题7.用两个栈实现队列

题目.用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead分别完成在对尾插入节点和在队头删除节点。   该队列类模板如下: 1 t...
  • u013018721
  • u013018721
  • 2016年04月07日 19:37
  • 270
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:两个面试题(atoi, lgn)
举报原因:
原因补充:

(最多只允许输入30个字)