麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Leetcode030--二進制加法

2019-11-14 12:07:29
字體:
來源:轉載
供稿:網友

一、原題

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100" 

一、中文

給定兩個二進制的字符串,返回它們的和,也是二進行制字符串。 

三、舉例

str1 = “111”,str2=“1”最后返回的結果的是1000

四、思路

先將對應的兩個二進制字符串轉換成對應的整數數組,從低位到高位進行相加,同時要考慮到最后相加還要擴展一位的情況。詳情請見代碼實現。

五、程序

package code;public class LeetCode42{		public static void main(String args[]){		String str = addBinary("111", "1");		System.out.PRintln(str);	}	//數組表示的數字進行加一操作,數組的最高位表示的是數字的最低位	public static String addBinary(String str1, String str2) {		if(str1 == null || str2 == null){			return null;		}else{			int num1[] = new int[str1.length()];			int num2[] = new int[str2.length()];						for(int i = 0; i < str1.length(); i++){				num1[i] = str1.charAt(i) - '0';			}						for(int j = 0; j < str2.length(); j++){				num2[j] = str2.charAt(j) - '0';			}						//使num1保存比較長的數組的長度	        if (num1.length < num2.length) {	            int[] tmp = num1;	            num1 = num2;	            num2 = tmp;	        }	        	        int index1 = num1.length - 1; // 字符數組ca最后一個索引下標	        int index2 = num2.length - 1; // 字符數組cb最后一個索引下標	        int carry = 0; // 下位的進位標識	        int result; // 加載的結果				        //將兩個數進行相加	        while (index1 >= 0 && index2 >= 0) {	            result = num1[index1] + num2[index2] + carry;	            num1[index1] = result % 2;	            carry = result / 2;	            index1--;	            index2--;	        }	        	        //處理num1剩余的數字,也就是較長的數字的剩余的數字	        while(index1 >= 0){	        	result = carry + num1[index1];	        	num1[index1] = result%2;	        	carry = result/2;	        		        	if(carry == 0){	        		break;	        	}	        	index1--;	        }	        	        // 將字符數組中的值轉換了字符的0或者1	        for (int i = 0; i < num1.length; i++) {	            num1[i] += '0';	        }	        	        // 不需要擴展一位	        if (carry == 0) {	            char[] ch = new char[num1.length];	            for (int i = 0; i < num1.length; i++) {	                ch[i] = (char) (num1[i]);	            }	            return new String(ch);	        }else{	            char[] ch = new char[num1.length + 1];	            ch[0] = '1';	            for (int i = 0; i < num1.length; i++) {	                ch[i + 1] = (char) (num1[i]);	            }	            return new String(ch);	        }	        		}		    }}	---------------------------------output----------------------------------
1000
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久亚洲美女视频 | 91麻豆精品国产91久久久无需广告 | 国产一区免费 | 极品国产91在线网站 | 久久综合久久美利坚合众国 | 精品一区二区久久久 | 国产欧美精品综合一区 | xxxxhdhdhdhd日本 | 一级大片一级一大片 | 国产精品久久久久永久免费 | www.91pron | 色就色 综合偷拍区91网 | 国产99精品 | av在线久草 | 国产99久久久久久免费看 | 49vv看片免费 | 国产成人在线网站 | 欧美久久久一区二区三区 | 成码无人av片在线观看网站 | 欧洲精品久久久 | 性爱视频在线免费 | 广州毛片 | 精品一区二区三区免费视频 | 精品国产乱码久久久久久丨区2区 | 成人毛片免费看 | 成人免费av在线播放 | 欧美一级高清免费 | 成人在线观看免费观看 | 销魂美女一区二区 | 成人毛片视频在线观看 | 久久久久久久久日本理论电影 | 97zyz成人免费视频 | av影院在线播放 | 在线观看一区二区三区四区 | 男女做性免费网站 | 999久久久精品 | 久久久精品99| 中国成人在线视频 | 日本在线视频免费观看 | 777zyz色资源站在线观看 | 日本高清在线播放 |