File tree 3 files changed +119
-0
lines changed
3 files changed +119
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public String addBinary (String a , String b ) {
3
+ int maxL = Math .max (a .length (), b .length ());
4
+
5
+ if (a .length () < maxL ) {
6
+ a = String .join ("" , Collections .nCopies (maxL - a .length (), "0" )) + a ;
7
+ }
8
+
9
+ if (b .length () < maxL ) {
10
+ b = String .join ("" , Collections .nCopies (maxL - b .length (), "0" )) + b ;
11
+ }
12
+
13
+ int carry = 0 ;
14
+ StringBuilder sb = new StringBuilder ("" );
15
+
16
+ for (int i =a .length ()-1 ;i >=0 ;i --) {
17
+ if (a .charAt (i ) == '1' && b .charAt (i ) == '1' ) {
18
+ if (carry == 1 ) {
19
+ sb .append ("1" );
20
+ }
21
+ else {
22
+ sb .append ("0" );
23
+ }
24
+
25
+ carry = 1 ;
26
+ }
27
+
28
+ else if (a .charAt (i ) == '0' && b .charAt (i ) == '0' ) {
29
+ sb .append (String .valueOf (carry ));
30
+ carry = 0 ;
31
+ }
32
+
33
+ else if (a .charAt (i ) != b .charAt (i )) {
34
+ if (carry == 1 ) {
35
+ sb .append ("0" );
36
+ }
37
+ else {
38
+ sb .append ("1" );
39
+ }
40
+ }
41
+ }
42
+
43
+ if (carry == 1 ) {
44
+ sb .append ("1" );
45
+ }
46
+
47
+ return sb .reverse ().toString ();
48
+ }
49
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int [] plusOne (int [] digits ) {
3
+
4
+ int carry = 1 ;
5
+ List <Integer > ans = new ArrayList <>();
6
+
7
+ for (int i =digits .length -1 ;i >=0 ;i --) {
8
+ if (digits [i ] == 9 && carry == 1 ) {
9
+ ans .add (0 );
10
+ carry = 1 ;
11
+ }
12
+ else if (carry == 1 ) {
13
+ ans .add (digits [i ]+carry );
14
+ carry = 0 ;
15
+ }
16
+ else {
17
+ ans .add (digits [i ]+carry );
18
+ }
19
+ }
20
+
21
+ if (carry !=0 ) {
22
+ ans .add (carry );
23
+ }
24
+
25
+ Collections .reverse (ans );
26
+
27
+ int [] a = new int [ans .size ()];
28
+
29
+ for (int k =0 ; k <ans .size ();k ++) {
30
+ a [k ] = ans .get (k );
31
+ }
32
+
33
+ return a ;
34
+ }
35
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public boolean canConstruct (String ransomNote , String magazine ) {
3
+ Map <Character , Integer > noteMap = new HashMap <>();
4
+ Map <Character , Integer > magMap = new HashMap <>();
5
+
6
+ for (char c : ransomNote .toCharArray ()) {
7
+ if (noteMap .containsKey (c )) {
8
+ noteMap .put (c , noteMap .get (c ) + 1 );
9
+ }
10
+ else {
11
+ noteMap .put (c , 1 );
12
+ }
13
+ }
14
+
15
+ for (char c : magazine .toCharArray ()) {
16
+ if (magMap .containsKey (c )) {
17
+ magMap .put (c , magMap .get (c ) + 1 );
18
+ }
19
+ else {
20
+ magMap .put (c , 1 );
21
+ }
22
+ }
23
+
24
+ for (Map .Entry <Character , Integer > entry : noteMap .entrySet ()) {
25
+ if (magMap .containsKey (entry .getKey ()) && magMap .get (entry .getKey ()) >= entry .getValue ()) {
26
+ continue ;
27
+ }
28
+ else {
29
+ return false ;
30
+ }
31
+ }
32
+
33
+ return true ;
34
+ }
35
+ }
You can’t perform that action at this time.
0 commit comments