找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2590|回复: 1
收起左侧

[Zillow] zillow online assignment(问题一,附上注意事项!!!)

[复制链接]

11

主题

6

精华

308

积分

高级会员

Rank: 3Rank: 3

积分
308
发表于 11-3-2014 06:40 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Sophia 于 11-20-2014 11:35 AM 编辑 8 T( B) M" o$ C( {4 G& t# k- X
7 ^6 T, x+ j$ p$ o7 `6 u
  /**
* In this class MyString, I implemented a method "stringToLong". It supports an optional sign at the first character.
* The input can be 0,+33,-678,
* Tips:
* If the number is null,or empty string or contains other char except from '0'-'9' , the method will throw an exception containing message "This is illegal Input String".
* If the input is larger than Long.MAX_VALUE, the method will throw an exception containing message "MAX OVERFLOW".
* If the input is smaller than Long.MIN_VALUE, the method will throw an exception containing message "MIN_OVERFLOW".
*
* (最好多写一些注释!!!!)
*
*/
public class MyString{
        /**
         *
         * @param s string to convert
         */
        public static long stringToLong(String s) throws IllegalArgumentException{
                long res = 0;
                //lmax is defined to 7;lmin is defined to 8;over is 922337203685477580
                long lmax=Long.MAX_VALUE%10;
                long lmin=Math.abs(Long.MIN_VALUE%10);
                long over = Long.MAX_VALUE/10;
//考虑overflow的情况!!!和正负号
                boolean prefix = true;
                int i = 0;
                if(s==null||s.length()==0)
                        throw new IllegalArgumentException("This is illegal Input String");
                if(s.charAt(0)=='-'){
                        prefix =false;
                        i=1;
                }
                else if(s.charAt(0)=='+')
                        i=1;
                if(i==s.length())
                        throw new IllegalArgumentException("This is illegal Input String");
                for(; i<s.length(); i++){
                    int c = s.charAt(i)-'0';
                    if(c>9 || c<0)
                            throw new IllegalArgumentException("This is illegal Input String");
$ s5 N% O% V1 R' E
                    if(res == over){
                            if(prefix){
                                    if(c>lmax)
                                            throw new IllegalArgumentException("MAX OVERFLOW");
                                }
                            else{
                                    if( c==lmin && i==s.length()-1)
                                            return Long.MIN_VALUE;
                                    else if( c>=lmin)
                                            throw new IllegalArgumentException("MIN OVERFLOW");
                            }
                    }else if(res > over){
                            if(prefix){
                                    throw new IllegalArgumentException("MAX OVERFLOW");
                        }
                    else{
                                    throw new IllegalArgumentException("MIN OVERFLOW");
                    }
            }
                    res = res*10+c;
                 }
        return prefix ?res: -res;
        }

$ K2 F' {4 [1 [
}
- R5 k  ?+ }- L# M# G

0

主题

0

精华

40

积分

新米人

Rank: 1

积分
40
发表于 11-6-2014 04:23 PM | 显示全部楼层
zillow的online test是不是有两题?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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