标签:一个 string 分配 java span 常用 end 字符 str
Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100".
双字符串常用双指针问题
public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1, j = b.length() - 1; int carry = 0; while (i >= 0 || j >= 0) { int sum = carry; if (i >= 0) sum += a.charAt(i--) - ‘0‘; if (j >= 0) sum += b.charAt(j--) - ‘0‘; sb.append(sum % 2); carry = sum / 2; } if (carry != 0) sb.append(carry); return sb.reverse().toString(); }
想好容器, 双指针, 借助sum, carry, 别忘了最后加carry, 和 reverse
字符转化为数值, a.charAt(i) - ‘0‘: 两个字符相减实际上是ASCII码对应的数相减; 也可以替换为:
if (i >= 0) sum += Character.getNumericValue(a.charAt(i--));
public static int getNumericValue(char ch)
int
值。例如,字符 ‘\u216C‘
(罗马数字 50)将返回一个值为 50 的整数。
字母 A-Z 的大写(‘\u0041‘
到 ‘\u005A‘
)、小写(‘\u0061‘
到 ‘\u007A‘
)和全形参数(‘\uFF21‘
到 ‘\uFF3A‘
和‘\uFF41‘
到 ‘\uFF5A‘
)形式拥有从 10 到 35 的数值。这独立于 Unicode 规范,该规范没有为这些 char
值分配数值。
标签:一个 string 分配 java span 常用 end 字符 str
原文地址:http://www.cnblogs.com/apanda009/p/7270112.html