Skip to content

Commit a056dfd

Browse files
committed
一刷415
1 parent b1c6d98 commit a056dfd

File tree

6 files changed

+73
-10
lines changed

6 files changed

+73
-10
lines changed

README.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2930,13 +2930,13 @@ TIP: **公众号的微信号是: `jikerizhi`**。__因为众所周知的原因
29302930
//|{doc_base_url}/0414-third-maximum-number.adoc[题解]
29312931
//|Easy
29322932
//|
2933-
//
2934-
//|{counter:codes}
2935-
//|{leetcode_base_url}/add-strings/[415. Add Strings^]
2936-
//|{source_base_url}/_0415_AddStrings.java[Java]
2937-
//|{doc_base_url}/0415-add-strings.adoc[题解]
2938-
//|Easy
2939-
//|
2933+
2934+
|{counter:codes}
2935+
|{leetcode_base_url}/add-strings/[415. Add Strings^]
2936+
|{source_base_url}/_0415_AddStrings.java[Java]
2937+
|{doc_base_url}/0415-add-strings.adoc[题解]
2938+
|Easy
2939+
|
29402940

29412941
|{counter:codes}
29422942
|{leetcode_base_url}/partition-equal-subset-sum/[416. Partition Equal Subset Sum^]

docs/0415-add-strings.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,24 @@ Given two non-negative integers `num1` and `num2` represented as string, return
1616

1717

1818
[[src-0415]]
19+
[tabs]
20+
====
21+
一刷::
22+
+
23+
--
1924
[{java_src_attr}]
2025
----
2126
include::{sourcedir}/_0415_AddStrings.java[tag=answer]
2227
----
28+
--
29+
30+
// 二刷::
31+
// +
32+
// --
33+
// [{java_src_attr}]
34+
// ----
35+
// include::{sourcedir}/_0415_AddStrings_2.java[tag=answer]
36+
// ----
37+
// --
38+
====
2339

docs/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ include::0412-fizz-buzz.adoc[leveloffset=+1]
904904

905905
// include::0414-third-maximum-number.adoc[leveloffset=+1]
906906

907-
// include::0415-add-strings.adoc[leveloffset=+1]
907+
include::0415-add-strings.adoc[leveloffset=+1]
908908

909909
include::0416-partition-equal-subset-sum.adoc[leveloffset=+1]
910910

logbook/202406.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,6 +803,10 @@
803803
|{doc_base_url}/0392-is-subsequence.adoc[题解]
804804
|✅ 双指针
805805

806+
|{counter:codes}
807+
|{leetcode_base_url}/add-strings/[415. Add Strings^]
808+
|{doc_base_url}/0415-add-strings.adoc[题解]
809+
|✅ 双指针,从后向前,模拟加法进位。
806810

807811
|===
808812

src/main/java/com/diguage/algo/leetcode/_0412_FizzBuzz.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,15 @@
4141
* @since 2020-01-26 23:17
4242
*/
4343
public class _0412_FizzBuzz {
44-
// tag::answer[]
44+
// tag::answer[]
4545

4646
/**
4747
* Runtime: 2 ms, faster than 29.17% of Java online submissions for Fizz Buzz.
4848
*
4949
* Memory Usage: 45.5 MB, less than 5.40% of Java online submissions for Fizz Buzz.
50+
*
51+
* @author D瓜哥 · https://www.diguage.com
52+
* @since 2020-01-26 23:17
5053
*/
5154
public List<String> fizzBuzz(int n) {
5255
List<String> result = new ArrayList<>(n);
@@ -64,7 +67,7 @@ public List<String> fizzBuzz(int n) {
6467
return result;
6568
}
6669

67-
// end::answer[]
70+
// end::answer[]
6871

6972

7073
public static void main(String[] args) {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.diguage.algo.leetcode;
2+
3+
public class _0415_AddStrings {
4+
// tag::answer[]
5+
6+
/**
7+
* @author D瓜哥 · https://www.diguage.com
8+
* @since 2024-09-20 22:18:41
9+
*/
10+
public String addStrings(String num1, String num2) {
11+
int max = 0, diff = 0;
12+
if (num1.length() < num2.length()) {
13+
String tmp = num1;
14+
num1 = num2;
15+
num2 = tmp;
16+
}
17+
max = num1.length();
18+
diff = max - num2.length();
19+
int carry = 0;
20+
String result = "";
21+
for (int i = max - 1; i >= 0; i--) {
22+
int n1 = num1.charAt(i) - '0';
23+
int n2 = 0;
24+
if (i - diff >= 0) {
25+
n2 = num2.charAt(i - diff) - '0';
26+
}
27+
int sum = n1 + n2 + carry;
28+
carry = sum / 10;
29+
result = (sum % 10) + result;
30+
}
31+
return carry == 0 ? result : "1" + result;
32+
}
33+
// end::answer[]
34+
35+
public static void main(String[] args) {
36+
_0415_AddStrings solution = new _0415_AddStrings();
37+
String result = solution.addStrings("11", "123");
38+
System.out.println(result);
39+
}
40+
}

0 commit comments

Comments
 (0)