给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为非空字符串且只包含数字1
和0
。
输入: a = "11", b = "1" 输出: "100"
输入: a = "1010", b = "1011" 输出: "10101"
1 class Solution { 2 public String addBinary(String a, String b) { 3 Integer decimalNum = Integer.parseInt(a,2) + Integer.parseInt(b,2); 4 return Integer.toBinaryString(decimalNum); 5 } 6 }
1 class Solution { 2 public String addBinary(String a, String b) { 3 StringBuilder res = new StringBuilder(); 4 int n = Math.max(a.length(),b.length()); 5 // carry 表示上一个位置的进位,初始为0 6 int carry = 0; 7 for(int i = 0; i < n; i++){ 8 // 求carry + a[i] 9 carry += i < a.length() ? (a.charAt(a.length()- 1- i) - ‘0‘) : 0; 10 // 求carry + a[i] + b[i] 11 carry += i < b.length() ? (b.charAt(b.length()- 1- i) - ‘0‘) : 0; 12 // 每一位的答案为carry + a[i] + b[i] mod 2 13 res.append((char)(carry % 2 + ‘0‘)); 14 carry /= 2; 15 } 16 // 判断最高位是否需要进1 17 if(carry > 0) 18 res.append(‘1‘); 19 // 将res 字符串翻转 并返回String对象 20 return (res.reverse()).toString(); 21 } 22 }
序号 | 方法描述 |
1 | public static int parseInt(String s, int radix) throws NumberFormatException parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析。 如果方法有两个参数, 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 |
2 | public static String toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
|
parseInt("0", 10) 返回 0
parseInt("473", 10) 返回 473
parseInt("-0", 10) 返回 0
parseInt("-FF", 16) 返回 -255
parseInt("1100110", 2) 返回 102
parseInt("2147483647", 10) 返回 2147483647
parseInt("-2147483648", 10) 返回 -2147483648
parseInt("2147483648", 10) 抛出 NumberFormatException
parseInt("99", 8) 抛出 NumberFormatException
parseInt("Kona", 10) 抛出 NumberFormatException
parseInt("Kona", 27) 返回 411787
result = <expression> ? <statement1> : <statement3>;
int x = 1;
int y = 2;
int z ;
z = x<y ? x : y; // z = 1
String a = "3210";
int b = a.charAt(1) -‘0‘; //a.charAt(1) 是3210中左起第二个数即为2
System.out.println(b+10); //12
int a = 1;
char b = (char)(a +‘0‘);
System.out.println(); //字符1
int a1 = 1;
String s1 = a1 + "";
System.out.println(s1 + 2000); //12000
int a2 = 1;
String s2 = Integer.toString(a2);
System.out.println(s2 + 2345); //12345
int a3 = 6;
String s3 = String.valueOf(a3);
System.out.println(s3+789); //6789
String s4 = "12345";
int a4 = Integer.parseInt(s4);
System.out.println(a4+54321); //66666
String s5 = "0.123";
double a5 = 0.007;
System.out.println(Double.parseDouble(s5) + a5); // 0.13
原文:https://www.cnblogs.com/fenixG/p/13184982.html