面试题 05.01. 插入

class Solution {
    public static int binaryToInteger(char[] numbers) {
        int result = 0;
        for(int i=numbers.length - 1; i>=0; i--)
            if(numbers[i]=='1')
                result += Math.pow(2, (numbers.length-i - 1));
        return result;
    }
    public static int insertBits(int N, int M, int i, int j) {
     String sn=Integer.toBinaryString(N);
     String sm=Integer.toBinaryString(M);
     String strn = new StringBuffer(sn).reverse().toString();
     String strm = new StringBuffer(sm).reverse().toString();
     while(strn.length()<32)
     {
         strn=strn+"0";
     }
     while(strm.length()<(j-i+1))
     {
         strm=strm+"0";
     }
     char[] numsn=strn.toCharArray();
     char[] numsm=strm.toCharArray();
     int len= numsn.length;
     int x=0;
     for(int k=i;k<=j;k++)
     {
         numsn[k]=numsm[x++];
     }
     String str1 = new String(numsn);
     String str = new StringBuffer(str1).reverse().toString();
     char[] ans=str.toCharArray();
     int number= binaryToInteger(ans);
     return number;
    }
}

我用java写的特别心酸,一些转换函数都要现场查,我是得系统看一下Java的视频代码了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值