Skip to content

Commit d6e1fb1

Browse files
authored
feat: update lc problems (#2069)
1 parent d263df1 commit d6e1fb1

File tree

17 files changed

+249
-51
lines changed

17 files changed

+249
-51
lines changed

solution/0500-0599/0557.Reverse Words in a String III/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
<p><strong>示例 2:</strong></p>
2121

2222
<pre>
23-
<strong>输入:</strong> s = "God Ding"
24-
<strong>输出:</strong>"doG gniD"
23+
<strong>输入:</strong> s = "Mr Ding"
24+
<strong>输出:</strong>"rM gniD"
2525
</pre>
2626

2727
<p>&nbsp;</p>

solution/0500-0599/0557.Reverse Words in a String III/README_EN.md

+12-5
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,19 @@
88

99
<p>&nbsp;</p>
1010
<p><strong class="example">Example 1:</strong></p>
11-
<pre><strong>Input:</strong> s = "Let's take LeetCode contest"
12-
<strong>Output:</strong> "s'teL ekat edoCteeL tsetnoc"
13-
</pre><p><strong class="example">Example 2:</strong></p>
14-
<pre><strong>Input:</strong> s = "God Ding"
15-
<strong>Output:</strong> "doG gniD"
11+
12+
<pre>
13+
<strong>Input:</strong> s = &quot;Let&#39;s take LeetCode contest&quot;
14+
<strong>Output:</strong> &quot;s&#39;teL ekat edoCteeL tsetnoc&quot;
1615
</pre>
16+
17+
<p><strong class="example">Example 2:</strong></p>
18+
19+
<pre>
20+
<strong>Input:</strong> s = &quot;Mr Ding&quot;
21+
<strong>Output:</strong> &quot;rM gniD&quot;
22+
</pre>
23+
1724
<p>&nbsp;</p>
1825
<p><strong>Constraints:</strong></p>
1926

solution/1000-1099/1084.Sales Analysis III/README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ Product table:
7676
| 1 | S8 |
7777
+-------------+--------------+
7878
<strong>解释:</strong>
79-
id为1的产品仅在2019年春季销售
80-
id为2的产品在2019年春季销售,但也在2019年春季之后销售
81-
id 3的产品在2019年春季之后销售
82-
我们只退回产品1,因为它是2019年春季才销售的产品。</pre>
79+
id 为 1 的产品仅在 2019 年春季销售
80+
id 为 2 的产品在 2019 年春季销售,但也在 2019 年春季之后销售
81+
id 为 3 的产品在 2019 年春季之后销售
82+
我们只返回 id 为 1 的产品,因为它是 2019 年春季才销售的产品。</pre>
8383

8484
## 解法
8585

solution/1500-1599/1522.Diameter of N-Ary Tree/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<!-- 这里写题目描述 -->
88

9-
<p>给定一棵 N 叉树的根节点&nbsp;<code>root</code>&nbsp;,计算这棵树的直径长度。</p>
9+
<p>给定一棵 <code>N 叉树</code> 的根节点&nbsp;<code>root</code>&nbsp;,计算这棵树的直径长度。</p>
1010

1111
<p>N 叉树的直径指的是树中任意两个节点间路径中<strong> 最长 </strong>路径的长度。这条路径可能经过根节点,也可能不经过根节点。</p>
1212

solution/1500-1599/1522.Diameter of N-Ary Tree/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## Description
66

7-
<p>Given a <code>root</code> of an <a href="https://leetcode.com/articles/introduction-to-n-ary-trees/" target="_blank">N-ary tree</a>, you need to compute the length of the diameter of the tree.</p>
7+
<p>Given a <code>root</code> of an <code>N-ary tree</code>, you need to compute the length of the diameter of the tree.</p>
88

99
<p>The diameter of an N-ary tree is the length of the <strong>longest</strong> path between any two nodes in the tree. This path may or may not pass through the root.</p>
1010

solution/2400-2499/2431.Maximize Total Tastiness of Purchased Fruits/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
<p><strong>注意:</strong></p>
2727

2828
<ul>
29-
<li>每种水果最多只能购买一次。</li>
30-
<li>一些水果你最多只能用一次折价券。</li>
29+
<li>每个水果最多只能购买一次。</li>
30+
<li>一个水果你最多只能用一次折价券。</li>
3131
</ul>
3232

3333
<p>&nbsp;</p>

solution/2400-2499/2436.Minimum Split Into Subarrays With GCD Greater Than One/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<p>给定一个由正整数组成的数组 <code>nums</code>。</p>
1010

11-
<p>将数组拆分为&nbsp;<strong>一个或多个&nbsp;</strong>不相连的子数组,如下所示:</p>
11+
<p>将数组拆分为&nbsp;<strong>一个或多个&nbsp;</strong>互相不覆盖的子数组,如下所示:</p>
1212

1313
<ul>
1414
<li>数组中的每个元素都&nbsp;<strong>只属于一个&nbsp;</strong>子数组,并且</li>

solution/2600-2699/2661.First Completely Painted Row or Column/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<p>从下标 <code>0</code> 开始遍历 <code>arr</code> 中的每个下标 <code>i</code> ,并将包含整数 <code>arr[i]</code> 的 <code>mat</code> 单元格涂色。</p>
1212

13-
<p>请你找出 <code>arr</code> 中在 <code>mat</code> 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 <code>i</code> 。</p>
13+
<p>请你找出 <code>arr</code> 中第一个使得&nbsp;<code>mat</code> 的某一行或某一列都被涂色的元素,并返回其下标 <code>i</code> 。</p>
1414

1515
<p>&nbsp;</p>
1616

solution/2700-2799/2715.Timeout Cancellation/README_EN.md

+27-14
Original file line numberDiff line numberDiff line change
@@ -6,53 +6,66 @@
66

77
<p>Given a function <code>fn</code>, an array of&nbsp;arguments&nbsp;<code>args</code>, and a timeout&nbsp;<code>t</code>&nbsp;in milliseconds, return a cancel function <code>cancelFn</code>.</p>
88

9-
<p>After a delay of&nbsp;<code>t</code>,&nbsp;<code>fn</code>&nbsp;should be called with <code>args</code> passed as parameters <strong>unless</strong> <code>cancelFn</code> was invoked before the delay of <code>t</code> milliseconds elapses, specifically at <code>cancelT</code>&nbsp;ms.&nbsp;In that case,&nbsp;<code>fn</code> should never be called.</p>
9+
<p>After a delay of <code>cancelT</code>, the returned cancel function <code>cancelFn</code> will be invoked.</p>
10+
11+
<pre>
12+
setTimeout(cancelFn, cancelT)
13+
</pre>
14+
15+
<p>Initially, the execution of the function <code>fn</code> should be delayed by <code>t</code> milliseconds.</p>
16+
17+
<p>If, before the delay of <code>t</code> milliseconds, the function <code>cancelFn</code> is invoked, it should cancel the delayed execution of <code>fn</code>. Otherwise, if <code>cancelFn</code> is not invoked within the specified delay <code>t</code>, <code>fn</code> should be executed with the provided <code>args</code> as arguments.</p>
1018

1119
<p>&nbsp;</p>
1220
<p><strong class="example">Example 1:</strong></p>
1321

1422
<pre>
15-
<strong>Input:</strong> fn = (x) =&gt; x * 5, args = [2], t = 20, cancelT = 50
23+
<strong>Input:</strong> fn = (x) =&gt; x * 5, args = [2], t = 20
1624
<strong>Output:</strong> [{&quot;time&quot;: 20, &quot;returned&quot;: 10}]
1725
<strong>Explanation:</strong>
18-
const result = []
26+
const cancelT = 50;
27+
const result = [];
1928

20-
const fn = (x) =&gt; x * 5
29+
const fn = (x) =&gt; x * 5;
2130

22-
const start = performance.now()&nbsp;
31+
const start = performance.now();
2332

2433
const log = (...argsArr) =&gt; {
2534
const diff = Math.floor(performance.now() - start);
26-
result.push({&quot;time&quot;: diff, &quot;returned&quot;: fn(...argsArr)})
35+
result.push({&quot;time&quot;: diff, &quot;returned&quot;: fn(...argsArr)});
2736
}
2837
&nbsp; &nbsp;&nbsp;
2938
const cancel = cancellable(log, [2], 20);
3039

31-
const maxT = Math.max(t, 50)
40+
const maxT = Math.max(t, 50);
3241
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
33-
setTimeout(cancel, cancelT)
42+
setTimeout(cancel, cancelT);
3443

3544
setTimeout(() =&gt; {
36-
&nbsp; &nbsp; console.log(result) // [{&quot;time&quot;:20,&quot;returned&quot;:10}]
37-
}, 65)
45+
&nbsp; &nbsp; console.log(result); // [{&quot;time&quot;:20,&quot;returned&quot;:10}]
46+
}, 65);
3847

3948
The cancellation was scheduled to occur after a delay of cancelT (50ms), which happened after the execution of fn(2) at 20ms.
4049
</pre>
4150

4251
<p><strong class="example">Example 2:</strong></p>
4352

4453
<pre>
45-
<strong>Input:</strong> fn = (x) =&gt; x**2, args = [2], t = 100, cancelT = 50
54+
<strong>Input:</strong> fn = (x) =&gt; x**2, args = [2], t = 100
4655
<strong>Output:</strong> []
47-
<strong>Explanation:</strong> The cancellation was scheduled to occur after a delay of cancelT (50ms), which happened before the execution of fn(2) at 100ms, resulting in fn(2) never being called.
56+
<strong>Explanation:</strong>
57+
const cancelT = 50;
58+
The cancellation was scheduled to occur after a delay of cancelT (50ms), which happened before the execution of fn(2) at 100ms, resulting in fn(2) never being called.
4859
</pre>
4960

5061
<p><strong class="example">Example 3:</strong></p>
5162

5263
<pre>
53-
<strong>Input:</strong> fn = (x1, x2) =&gt; x1 * x2, args = [2,4], t = 30, cancelT = 100
64+
<strong>Input:</strong> fn = (x1, x2) =&gt; x1 * x2, args = [2,4], t = 30
5465
<strong>Output:</strong> [{&quot;time&quot;: 30, &quot;returned&quot;: 8}]
55-
<strong>Explanation: </strong>The cancellation was scheduled to occur after a delay of cancelT (100ms), which happened after the execution of fn(2,4) at 30ms.
66+
<strong>Explanation:
67+
</strong>const cancelT = 100;
68+
The cancellation was scheduled to occur after a delay of cancelT (100ms), which happened after the execution of fn(2,4) at 30ms.
5669
</pre>
5770

5871
<p>&nbsp;</p>

solution/2900-2999/2948.Make Lexicographically Smallest Array by Swapping Elements/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<p>返回执行任意次操作后能得到的 <strong>字典序最小的数组</strong><em> </em>。</p>
1414

15-
<p>如果在数组 <code>a</code> 和数组 <code>b</code> 第一个不同的位置上,数组 <code>a</code> 中的对应字符比数组 <code>b</code> 中的对应字符的字典序更小,则认为数组 <code>a</code> 就比数组 <code>b</code> 字典序更小。例如,数组 <code>[2,10,3]</code> 比数组 <code>[10,2,3]</code> 字典序更小,下标 <code>0</code> 处是两个数组第一个不同的位置,且 <code>2 &lt; 10</code> 。</p>
15+
<p>如果在数组 <code>a</code> 和数组 <code>b</code> 第一个不同的位置上,数组 <code>a</code> 中的对应元素比数组 <code>b</code> 中的对应元素的字典序更小,则认为数组 <code>a</code> 就比数组 <code>b</code> 字典序更小。例如,数组 <code>[2,10,3]</code> 比数组 <code>[10,2,3]</code> 字典序更小,下标 <code>0</code> 处是两个数组第一个不同的位置,且 <code>2 &lt; 10</code> 。</p>
1616

1717
<p>&nbsp;</p>
1818

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# [2955. Number of Same-End Substrings](https://leetcode.cn/problems/number-of-same-end-substrings)
2+
3+
[English Version](/solution/2900-2999/2955.Number%20of%20Same-End%20Substrings/README_EN.md)
4+
5+
## 题目描述
6+
7+
<!-- 这里写题目描述 -->
8+
9+
<p>You are given a <strong>0-indexed</strong> string <code>s</code>, and a 2D array of integers <code>queries</code>, where <code>queries[i] = [l<sub>i</sub>, r<sub>i</sub>]</code> indicates a substring of <code>s</code> starting from the index <code>l<sub>i</sub></code> and ending at the index <code>r<sub>i</sub></code> (both <strong>inclusive</strong>), i.e. <code>s[l<sub>i</sub>..r<sub>i</sub>]</code>.</p>
10+
11+
<p>Return <em>an array </em><code>ans</code><em> where</em> <code>ans[i]</code> <em>is the number of <strong>same-end</strong> substrings of</em> <code>queries[i]</code>.</p>
12+
13+
<p>A <strong>0-indexed</strong> string <code>t</code> of length <code>n</code> is called <strong>same-end</strong> if it has the same character at both of its ends, i.e., <code>t[0] == t[n - 1]</code>.</p>
14+
15+
<p>A <b>substring</b> is a contiguous non-empty sequence of characters within a string.</p>
16+
17+
<p>&nbsp;</p>
18+
<p><strong class="example">Example 1:</strong></p>
19+
20+
<pre>
21+
<strong>Input:</strong> s = &quot;abcaab&quot;, queries = [[0,0],[1,4],[2,5],[0,5]]
22+
<strong>Output:</strong> [1,5,5,10]
23+
<strong>Explanation:</strong> Here is the same-end substrings of each query:
24+
1<sup>st</sup> query: s[0..0] is &quot;a&quot; which has 1 same-end substring: &quot;<strong><u>a</u></strong>&quot;.
25+
2<sup>nd</sup> query: s[1..4] is &quot;bcaa&quot; which has 5 same-end substrings: &quot;<strong><u>b</u></strong>caa&quot;, &quot;b<strong><u>c</u></strong>aa&quot;, &quot;bc<strong><u>a</u></strong>a&quot;, &quot;bca<strong><u>a</u></strong>&quot;, &quot;bc<strong><u>aa</u></strong>&quot;.
26+
3<sup>rd</sup> query: s[2..5] is &quot;caab&quot; which has 5 same-end substrings: &quot;<strong><u>c</u></strong>aab&quot;, &quot;c<strong><u>a</u></strong>ab&quot;, &quot;ca<strong><u>a</u></strong>b&quot;, &quot;caa<strong><u>b</u></strong>&quot;, &quot;c<strong><u>aa</u></strong>b&quot;.
27+
4<sup>th</sup> query: s[0..5] is &quot;abcaab&quot; which has 10 same-end substrings: &quot;<strong><u>a</u></strong>bcaab&quot;, &quot;a<strong><u>b</u></strong>caab&quot;, &quot;ab<strong><u>c</u></strong>aab&quot;, &quot;abc<strong><u>a</u></strong>ab&quot;, &quot;abca<strong><u>a</u></strong>b&quot;, &quot;abcaa<strong><u>b</u></strong>&quot;, &quot;abc<strong><u>aa</u></strong>b&quot;, &quot;<strong><u>abca</u></strong>ab&quot;, &quot;<strong><u>abcaa</u></strong>b&quot;, &quot;a<strong><u>bcaab</u></strong>&quot;.
28+
</pre>
29+
30+
<p><strong class="example">Example 2:</strong></p>
31+
32+
<pre>
33+
<strong>Input:</strong> s = &quot;abcd&quot;, queries = [[0,3]]
34+
<strong>Output:</strong> [4]
35+
<strong>Explanation:</strong> The only query is s[0..3] which is &quot;abcd&quot;. It has 4 same-end substrings: &quot;<strong><u>a</u></strong>bcd&quot;, &quot;a<strong><u>b</u></strong>cd&quot;, &quot;ab<strong><u>c</u></strong>d&quot;, &quot;abc<strong><u>d</u></strong>&quot;.
36+
</pre>
37+
38+
<p>&nbsp;</p>
39+
<p><strong>Constraints:</strong></p>
40+
41+
<ul>
42+
<li><code>2 &lt;= s.length &lt;= 3 * 10<sup>4</sup></code></li>
43+
<li><code>s</code> consists only of lowercase English letters.</li>
44+
<li><code>1 &lt;= queries.length &lt;= 3 * 10<sup>4</sup></code></li>
45+
<li><code>queries[i].length == 2</code></li>
46+
<li><code>queries[i] = [l<sub>i</sub>, r<sub>i</sub>]</code></li>
47+
<li><code>0 &lt;= l<sub>i</sub> &lt;= r<sub>i</sub> &lt; s.length</code></li>
48+
</ul>
49+
50+
## 解法
51+
52+
<!-- 这里可写通用的实现逻辑 -->
53+
54+
<!-- tabs:start -->
55+
56+
### **Python3**
57+
58+
<!-- 这里可写当前语言的特殊实现逻辑 -->
59+
60+
```python
61+
62+
```
63+
64+
### **Java**
65+
66+
<!-- 这里可写当前语言的特殊实现逻辑 -->
67+
68+
```java
69+
70+
```
71+
72+
### **C++**
73+
74+
```cpp
75+
76+
```
77+
78+
### **Go**
79+
80+
```go
81+
82+
```
83+
84+
### **...**
85+
86+
```
87+
88+
```
89+
90+
<!-- tabs:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# [2955. Number of Same-End Substrings](https://leetcode.com/problems/number-of-same-end-substrings)
2+
3+
[中文文档](/solution/2900-2999/2955.Number%20of%20Same-End%20Substrings/README.md)
4+
5+
## Description
6+
7+
<p>You are given a <strong>0-indexed</strong> string <code>s</code>, and a 2D array of integers <code>queries</code>, where <code>queries[i] = [l<sub>i</sub>, r<sub>i</sub>]</code> indicates a substring of <code>s</code> starting from the index <code>l<sub>i</sub></code> and ending at the index <code>r<sub>i</sub></code> (both <strong>inclusive</strong>), i.e. <code>s[l<sub>i</sub>..r<sub>i</sub>]</code>.</p>
8+
9+
<p>Return <em>an array </em><code>ans</code><em> where</em> <code>ans[i]</code> <em>is the number of <strong>same-end</strong> substrings of</em> <code>queries[i]</code>.</p>
10+
11+
<p>A <strong>0-indexed</strong> string <code>t</code> of length <code>n</code> is called <strong>same-end</strong> if it has the same character at both of its ends, i.e., <code>t[0] == t[n - 1]</code>.</p>
12+
13+
<p>A <b>substring</b> is a contiguous non-empty sequence of characters within a string.</p>
14+
15+
<p>&nbsp;</p>
16+
<p><strong class="example">Example 1:</strong></p>
17+
18+
<pre>
19+
<strong>Input:</strong> s = &quot;abcaab&quot;, queries = [[0,0],[1,4],[2,5],[0,5]]
20+
<strong>Output:</strong> [1,5,5,10]
21+
<strong>Explanation:</strong> Here is the same-end substrings of each query:
22+
1<sup>st</sup> query: s[0..0] is &quot;a&quot; which has 1 same-end substring: &quot;<strong><u>a</u></strong>&quot;.
23+
2<sup>nd</sup> query: s[1..4] is &quot;bcaa&quot; which has 5 same-end substrings: &quot;<strong><u>b</u></strong>caa&quot;, &quot;b<strong><u>c</u></strong>aa&quot;, &quot;bc<strong><u>a</u></strong>a&quot;, &quot;bca<strong><u>a</u></strong>&quot;, &quot;bc<strong><u>aa</u></strong>&quot;.
24+
3<sup>rd</sup> query: s[2..5] is &quot;caab&quot; which has 5 same-end substrings: &quot;<strong><u>c</u></strong>aab&quot;, &quot;c<strong><u>a</u></strong>ab&quot;, &quot;ca<strong><u>a</u></strong>b&quot;, &quot;caa<strong><u>b</u></strong>&quot;, &quot;c<strong><u>aa</u></strong>b&quot;.
25+
4<sup>th</sup> query: s[0..5] is &quot;abcaab&quot; which has 10 same-end substrings: &quot;<strong><u>a</u></strong>bcaab&quot;, &quot;a<strong><u>b</u></strong>caab&quot;, &quot;ab<strong><u>c</u></strong>aab&quot;, &quot;abc<strong><u>a</u></strong>ab&quot;, &quot;abca<strong><u>a</u></strong>b&quot;, &quot;abcaa<strong><u>b</u></strong>&quot;, &quot;abc<strong><u>aa</u></strong>b&quot;, &quot;<strong><u>abca</u></strong>ab&quot;, &quot;<strong><u>abcaa</u></strong>b&quot;, &quot;a<strong><u>bcaab</u></strong>&quot;.
26+
</pre>
27+
28+
<p><strong class="example">Example 2:</strong></p>
29+
30+
<pre>
31+
<strong>Input:</strong> s = &quot;abcd&quot;, queries = [[0,3]]
32+
<strong>Output:</strong> [4]
33+
<strong>Explanation:</strong> The only query is s[0..3] which is &quot;abcd&quot;. It has 4 same-end substrings: &quot;<strong><u>a</u></strong>bcd&quot;, &quot;a<strong><u>b</u></strong>cd&quot;, &quot;ab<strong><u>c</u></strong>d&quot;, &quot;abc<strong><u>d</u></strong>&quot;.
34+
</pre>
35+
36+
<p>&nbsp;</p>
37+
<p><strong>Constraints:</strong></p>
38+
39+
<ul>
40+
<li><code>2 &lt;= s.length &lt;= 3 * 10<sup>4</sup></code></li>
41+
<li><code>s</code> consists only of lowercase English letters.</li>
42+
<li><code>1 &lt;= queries.length &lt;= 3 * 10<sup>4</sup></code></li>
43+
<li><code>queries[i].length == 2</code></li>
44+
<li><code>queries[i] = [l<sub>i</sub>, r<sub>i</sub>]</code></li>
45+
<li><code>0 &lt;= l<sub>i</sub> &lt;= r<sub>i</sub> &lt; s.length</code></li>
46+
</ul>
47+
48+
## Solutions
49+
50+
<!-- tabs:start -->
51+
52+
### **Python3**
53+
54+
```python
55+
56+
```
57+
58+
### **Java**
59+
60+
```java
61+
62+
```
63+
64+
### **C++**
65+
66+
```cpp
67+
68+
```
69+
70+
### **Go**
71+
72+
```go
73+
74+
```
75+
76+
### **...**
77+
78+
```
79+
80+
```
81+
82+
<!-- tabs:end -->

0 commit comments

Comments
 (0)