近期论坛无法登录的解决方案


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 801|回复: 0
收起左侧

Amazon 电面

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

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

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

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

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.
. From 1point 3acres bbs
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);   
        }        
        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);.1point3acres缃
                carryOn=0;
            }            
        }
        if(carryOn==1)
            res.InSert(0,"1");         
        return res.ToString();
    }   

评分

1

查看全部评分

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-6-26 13:32

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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