一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
电商初创公司Good Days
招聘SDE/UI/TPM实习生
把贵司招聘信息放这里
查看: 957|回复: 0
收起左侧

Amazon 电面

[复制链接] |试试Instant~ |关注本帖
readzhuc2 发表于 2016-9-19 14:40:39 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 本科 全职@Amazon - 猎头 - 技术电面 |Other在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
回馈地里,发一个Amazon的电面题:

题目:
Write a function that takes a string of digits as an input and returns true if the number is a power of 2 or false it is not.

Example:
"1024" - true. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
"1025" - false

我写的代码:
主要需要问清楚,输入的字符串是可以很长的,有10000位。

    //unit test: 0,1,2,4,16,15   
    public bool IsPowerTwo(string str)
    {        
        if(string.IsNullOrEmpty(str))
            return false;
        int n=str.Length;        
        string runner="1";        
        while(runner.Length<=n)
        {
            if(runner==str)
                return true;
            runner=MulpliteByTwo(runner);    . Waral 鍗氬鏈夋洿澶氭枃绔,
        }        
        return false;   
    }
    //(1+2....str.Length)
    //O(str.Length*(1+str.Length)/2); O(str.Length*str.Length)
    //unit test:8*2   
    public string MulpliteByTwo(string str)
    {
        StringBuilder res=new Stringbuilder();
        int n=str.Length;
        int carryOn=0;
        for(int i=n-1;i>=0;i--)
        {
            int cur=int.Parse(str);
            int curRes= cur*2+carryOn;
            if(curRes>9)            
            {   
                res.Insert(0,curRes-10);  
                carryOn=1;
            }
            else
            {
                res.Append(curRes);
                carryOn=0;
            }            
        }
        if(carryOn==1)
            res.InSert(0,"1");         
        return res.ToString();
    }   

评分

1

查看全部评分

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-1-19 19:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表