목적:
이진 문자열의 합을 구합니다.
(추천 튜토리얼: java 교육 영상)
문제 소개:
두 개의 바이너리 문자열을 제공하고 그 합을 반환합니다(바이너리로 표현).
입력은 숫자 1과 0만 포함하는 비어 있지 않은 문자열입니다.
예제 1:
입력: a = “11”, b = “1”
출력: “100”
예제 2:
입력: a = “1010”, b = “1011”
출력: "10101"
힌트:
각 문자열은 '0' 또는 '1' 문자로만 구성됩니다.
1 문자열이 "0"이 아닌 경우 앞에 0이 포함되지 않습니다.
import java.util.Scanner;public class text1 { public static void main(String[] a){ Scanner imput=new Scanner(System.in); System.out.println("请输入两个二进制数:"); String a1,a2,a3; a1=imput.next(); a2=imput.next(); a3=Solution(a1,a2); System.out.println(a3); } public static String Solution(String a, String b) { StringBuilder ans = new StringBuilder(); int ca = 0; for(int i = a.length() - 1, j = b.length() - 1;i >= 0 || j >= 0; i--, j--) { int sum = ca; sum += i >= 0 ? a.charAt(i) - '0' : 0; sum += j >= 0 ? b.charAt(j) - '0' : 0; ans.append(sum % 2); ca = sum / 2; } ans.append(ca == 1 ? ca : ""); return ans.reverse().toString(); } }
실행 결과:
관련 튜토리얼: java 입문 튜토리얼
위 내용은 Java는 이진 문자열의 합을 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!