Skip to content

Commit 86f2708

Browse files
committed
feat: add python and java solutions to lcci problem: 01.09.String Rotation
添加《程序员面试金典》题解:01.09.字符串轮转
1 parent a9a5b73 commit 86f2708

File tree

4 files changed

+24
-60
lines changed

4 files changed

+24
-60
lines changed

lcci/01.09.String Rotation/README.md

+9-20
Original file line numberDiff line numberDiff line change
@@ -39,32 +39,21 @@
3939

4040
<!-- tabs:start -->
4141

42+
### **Python3**
43+
44+
```python
45+
class Solution:
46+
def isFlipedString(self, s1: str, s2: str) -> bool:
47+
return len(s1) == len(s2) and s1 in (s2 * 2)
48+
```
49+
4250
### **Java**
4351
<!-- 这里可写当前语言的特殊实现逻辑 -->
4452

4553
```java
4654
class Solution {
4755
public boolean isFlipedString(String s1, String s2) {
48-
int len1 = s1.length(), len2 = s2.length();
49-
if (len1 != len2) {
50-
return false;
51-
}
52-
if ((len1 == 0 && len2 == 0) || (s1.equals(s2))) {
53-
return true;
54-
}
55-
56-
for (int i = 0; i < len1; ++i) {
57-
s1 = flip(s1);
58-
if (s1.equals(s2)) {
59-
return true;
60-
}
61-
}
62-
return false;
63-
64-
}
65-
66-
private String flip(String s) {
67-
return s.substring(1) + s.charAt(0);
56+
return s1.length() == s2.length() && (s2 + s2).indexOf(s1) != -1;
6857
}
6958
}
7059
```

lcci/01.09.String Rotation/README_EN.md

+11-20
Original file line numberDiff line numberDiff line change
@@ -52,31 +52,22 @@
5252

5353
## Solutions
5454

55+
<!-- tabs:start -->
56+
57+
### **Python3**
58+
59+
```python
60+
class Solution:
61+
def isFlipedString(self, s1: str, s2: str) -> bool:
62+
return len(s1) == len(s2) and s1 in (s2 * 2)
63+
```
64+
5565
### **Java**
5666

5767
```java
5868
class Solution {
5969
public boolean isFlipedString(String s1, String s2) {
60-
int len1 = s1.length(), len2 = s2.length();
61-
if (len1 != len2) {
62-
return false;
63-
}
64-
if ((len1 == 0 && len2 == 0) || (s1.equals(s2))) {
65-
return true;
66-
}
67-
68-
for (int i = 0; i < len1; ++i) {
69-
s1 = flip(s1);
70-
if (s1.equals(s2)) {
71-
return true;
72-
}
73-
}
74-
return false;
75-
76-
}
77-
78-
private String flip(String s) {
79-
return s.substring(1) + s.charAt(0);
70+
return s1.length() == s2.length() && (s2 + s2).indexOf(s1) != -1;
8071
}
8172
}
8273
```
+1-20
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,5 @@
11
class Solution {
22
public boolean isFlipedString(String s1, String s2) {
3-
int len1 = s1.length(), len2 = s2.length();
4-
if (len1 != len2) {
5-
return false;
6-
}
7-
if ((len1 == 0 && len2 == 0) || (s1.equals(s2))) {
8-
return true;
9-
}
10-
11-
for (int i = 0; i < len1; ++i) {
12-
s1 = flip(s1);
13-
if (s1.equals(s2)) {
14-
return true;
15-
}
16-
}
17-
return false;
18-
19-
}
20-
21-
private String flip(String s) {
22-
return s.substring(1) + s.charAt(0);
3+
return s1.length() == s2.length() && (s2 + s2).indexOf(s1) != -1;
234
}
245
}
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class Solution:
2+
def isFlipedString(self, s1: str, s2: str) -> bool:
3+
return len(s1) == len(s2) and s1 in (s2 * 2)

0 commit comments

Comments
 (0)