2つのバイナリ文字列を追加しようとしていますが、結果はUnicodeになります
入力: "11""1"
出力: "\u0001\u0000\u0000"
私は私の答えが欲しい 100
class Solution {
public String addBinary(String a, String b) {
String ans=new String();
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0 || carry==1){
int add=carry;
if(i>=0) add+=a.charAt(i)-'0';
if(j>=0) add+=b.charAt(j)-'0';
ans=(char)(add%2)+ans;
carry=add/2;
i--;
j--;
}
return ans;
}
}
別の文字列部分の先頭に追加すると正しくありません。あなたは使う必要がありますans="" + (add%2) + ans;
public String addBinary(String a, String b) {
String ans="";
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
while(i>=0 || j>=0 || carry==1){
int add=carry;
if(i>=0) add+=a.charAt(i)-'0';
if(j>=0) add+=b.charAt(j)-'0';
ans="" + (add%2) + ans;
carry=add/2;
i--;
j--;
}
System.out.print("ans=" + ans);
return ans;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加