Shawngbk / Leecode

Questions of Leecode
0 stars 0 forks source link

67. Add Binary #54

Open Shawngbk opened 7 years ago

Shawngbk commented 7 years ago

假如str[0]存放的数据类型是字符‘1’,那么减去‘0’就得到一个整形数字1,而不是字符型‘1’,你还是不懂得话,可以查看C程序设计的最后面的“常用字符与ASCLL代码对照表”。字符‘0’的ASCLL值是48,而字符‘1’是49,所以str[0]-'0'相当于49-48=1 public class Solution { public String addBinary(String a, String b) { String rea = new StringBuilder(a).reverse().toString(); String reb = new StringBuilder(b).reverse().toString(); StringBuilder result = new StringBuilder(); boolean isCarry= false; int length = Math.max(rea.length(),reb.length()); for (int i = 0; i <length ; i++) { int x = i<rea.length()?rea.charAt(i)-'0':0; int y = i<reb.length()?reb.charAt(i)-'0':0; int sum= isCarry ? x+y+1: x+y; isCarry = sum>1 ? true:false; if(sum%2==0){ result.append("0"); }else { result.append("1"); } } if(isCarry){ result.append("1"); } return result.reverse().toString(); } }

Shawngbk commented 7 years ago

FB