leetcode練習バイナリ和


バイナリは2つのバイナリ文字列を求め、それらの和(バイナリで表される)を返します.
空白以外の文字列として入力し、数値1と0のみを入力します.
例1:
入力:a=“11”、b=“1”出力:“100”例2:
入力:a=“1010”,b=“1011”出力:“10101”
考え方:両方が「0」で直接この文字列を返す場合、lengthは2つの数のグループの中で最も長い1つを取り、最初のループの回数として、最初のループは2つの文字列を配列化して加算し、ビットを上げ、余剰操作を取って数桁を得る.前length操作後、dキャリーは0ではない可能性があります.もう1サイクルして、キャリーに値を添付します.2文字列を加算した後に長さを加える必要があるかどうかは不明なので、ArrayListコンテナで保存します.最後に、コンテナの反転後の値を文字配列で保存します(残りはビット数のため、下部から反転します).最後にStringを使います.valueOf(char[])文字列注意:Arrays.toStringは[]で囲まれ、真ん中にカンマ形式の文字列があります.私たちが望んでいるのはつながっています.いいえ、[]の、valueOfを使います.
import java.util.*;

class Solution {
    public static String addBinary(String a, String b) {
      if(a.equals(b)&&a=="0") {//a,b  0   
    	  return new String("0");
      }
      else {
    	  char[] Sa=a.toCharArray();
    	  char[] Sb=b.toCharArray();
    	  // a,b   
    	  int length=a.length()>b.length()?a.length():b.length();
    	  int d=0; //d   
    	  List list=new ArrayList<>();
    	  for(int i=0;i0) {
    		  list.add(d%2);
    		  d/=2;
    	  }
    	  char results[]=new char[list.size()];
    	  for(int i=0;i