Skip to content

Commit 34ac757

Browse files
committed
feat: add python and java solutions to lcof question
添加《剑指 Offer》题解
1 parent f11020c commit 34ac757

File tree

21 files changed

+306
-0
lines changed

21 files changed

+306
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# [面试题20. 表示数值的字符串](https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"0123"及"-1E-16"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。
6+
7+
注意:本题与主站 65 题相同:https://leetcode-cn.com/problems/valid-number/
8+
9+
## 解法
10+
<!-- 这里可写通用的实现逻辑 -->
11+
12+
13+
### Python3
14+
<!-- 这里可写当前语言的特殊实现逻辑 -->
15+
16+
```python
17+
18+
```
19+
20+
### Java
21+
<!-- 这里可写当前语言的特殊实现逻辑 -->
22+
23+
```java
24+
25+
```
26+
27+
### ...
28+
```
29+
30+
```

lcof/面试题20. 表示数值的字符串/Solution.java

Whitespace-only changes.

lcof/面试题20. 表示数值的字符串/Solution.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# [面试题38. 字符串的排列](https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
输入一个字符串,打印出该字符串中字符的所有排列。
6+
7+
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。
8+
9+
**示例:**
10+
11+
```
12+
输入:s = "abc"
13+
输出:["abc","acb","bac","bca","cab","cba"]
14+
```
15+
16+
**限制:**
17+
18+
- `1 <= s 的长度 <= 8`
19+
20+
## 解法
21+
<!-- 这里可写通用的实现逻辑 -->
22+
23+
24+
### Python3
25+
<!-- 这里可写当前语言的特殊实现逻辑 -->
26+
27+
```python
28+
29+
```
30+
31+
### Java
32+
<!-- 这里可写当前语言的特殊实现逻辑 -->
33+
34+
```java
35+
36+
```
37+
38+
### ...
39+
```
40+
41+
```

lcof/面试题38. 字符串的排列/Solution.java

Whitespace-only changes.

lcof/面试题38. 字符串的排列/Solution.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# [面试题46. 把数字翻译成字符串](https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
6+
7+
**示例 1:**
8+
9+
```
10+
输入: 12258
11+
输出: 5
12+
解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
13+
```
14+
15+
**提示:**
16+
17+
- 0 <= num < 2<sup>31</sup>
18+
19+
## 解法
20+
<!-- 这里可写通用的实现逻辑 -->
21+
22+
23+
### Python3
24+
<!-- 这里可写当前语言的特殊实现逻辑 -->
25+
26+
```python
27+
28+
```
29+
30+
### Java
31+
<!-- 这里可写当前语言的特殊实现逻辑 -->
32+
33+
```java
34+
35+
```
36+
37+
### ...
38+
```
39+
40+
```

lcof/面试题46. 把数字翻译成字符串/Solution.java

Whitespace-only changes.

lcof/面试题46. 把数字翻译成字符串/Solution.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# [面试题59 - I. 滑动窗口的最大值](https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
给定一个数组 `nums` 和滑动窗口的大小 `k`,请找出所有滑动窗口里的最大值。
6+
7+
**示例:**
8+
9+
```
10+
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
11+
输出: [3,3,5,5,6,7]
12+
解释:
13+
14+
滑动窗口的位置 最大值
15+
--------------- -----
16+
[1 3 -1] -3 5 3 6 7 3
17+
1 [3 -1 -3] 5 3 6 7 3
18+
1 3 [-1 -3 5] 3 6 7 5
19+
1 3 -1 [-3 5 3] 6 7 5
20+
1 3 -1 -3 [5 3 6] 7 6
21+
1 3 -1 -3 5 [3 6 7] 7
22+
```
23+
24+
**提示:**
25+
26+
- 你可以假设 k 总是有效的,在输入数组不为空的情况下,`1 ≤ k ≤ 输入数组的大小`。
27+
28+
注意:本题与主站 239 题相同:https://leetcode-cn.com/problems/sliding-window-maximum/
29+
30+
## 解法
31+
<!-- 这里可写通用的实现逻辑 -->
32+
33+
34+
### Python3
35+
<!-- 这里可写当前语言的特殊实现逻辑 -->
36+
37+
```python
38+
39+
```
40+
41+
### Java
42+
<!-- 这里可写当前语言的特殊实现逻辑 -->
43+
44+
```java
45+
46+
```
47+
48+
### ...
49+
```
50+
51+
```

lcof/面试题59 - I. 滑动窗口的最大值/Solution.java

Whitespace-only changes.

lcof/面试题59 - I. 滑动窗口的最大值/Solution.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# [面试题60. n个骰子的点数](https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。
6+
7+
你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。
8+
9+
**示例 1:**
10+
11+
```
12+
输入: 1
13+
输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]
14+
```
15+
16+
**示例 2:**
17+
18+
```
19+
输入: 2
20+
输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.11111,0.08333,0.05556,0.02778]
21+
```
22+
23+
**限制:**
24+
25+
- `1 <= n <= 11`
26+
27+
## 解法
28+
<!-- 这里可写通用的实现逻辑 -->
29+
30+
31+
### Python3
32+
<!-- 这里可写当前语言的特殊实现逻辑 -->
33+
34+
```python
35+
36+
```
37+
38+
### Java
39+
<!-- 这里可写当前语言的特殊实现逻辑 -->
40+
41+
```java
42+
43+
```
44+
45+
### ...
46+
```
47+
48+
```

lcof/面试题60. n个骰子的点数/Solution.java

Whitespace-only changes.

lcof/面试题60. n个骰子的点数/Solution.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# [面试题61. 扑克牌中的顺子](https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
6+
7+
**示例 1:**
8+
9+
```
10+
输入: [1,2,3,4,5]
11+
输出: True
12+
```
13+
14+
**示例 2:**
15+
16+
```
17+
输入: [0,0,1,2,5]
18+
输出: True
19+
```
20+
21+
**限制:**
22+
23+
- 数组长度为 5 
24+
- 数组的数取值为 `[0, 13]`
25+
## 解法
26+
<!-- 这里可写通用的实现逻辑 -->
27+
28+
29+
### Python3
30+
<!-- 这里可写当前语言的特殊实现逻辑 -->
31+
32+
```python
33+
34+
```
35+
36+
### Java
37+
<!-- 这里可写当前语言的特殊实现逻辑 -->
38+
39+
```java
40+
41+
```
42+
43+
### ...
44+
```
45+
46+
```

lcof/面试题61. 扑克牌中的顺子/Solution.java

Whitespace-only changes.

lcof/面试题61. 扑克牌中的顺子/Solution.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# [面试题62. 圆圈中最后剩下的数字](https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/)
2+
3+
## 题目描述
4+
<!-- 这里写题目描述 -->
5+
0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。
6+
7+
例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。
8+
9+
**示例 1:**
10+
11+
```
12+
输入: n = 5, m = 3
13+
输出: 3
14+
```
15+
16+
**示例 2:**
17+
18+
```
19+
输入: n = 10, m = 17
20+
输出: 2
21+
```
22+
23+
**限制:**
24+
25+
- `1 <= n <= 10^5`
26+
- `1 <= m <= 10^6`
27+
28+
29+
## 解法
30+
<!-- 这里可写通用的实现逻辑 -->
31+
32+
33+
### Python3
34+
<!-- 这里可写当前语言的特殊实现逻辑 -->
35+
36+
```python
37+
38+
```
39+
40+
### Java
41+
<!-- 这里可写当前语言的特殊实现逻辑 -->
42+
43+
```java
44+
45+
```
46+
47+
### ...
48+
```
49+
50+
```

lcof/面试题62. 圆圈中最后剩下的数字/Solution.java

Whitespace-only changes.

lcof/面试题62. 圆圈中最后剩下的数字/Solution.py

Whitespace-only changes.

0 commit comments

Comments
 (0)