Skip to content

Commit af39384

Browse files
committed
feat: update solutions to lcof problem: No.58 - ||
面试题58 - II. 左旋转字符串
1 parent ae348af commit af39384

File tree

4 files changed

+36
-15
lines changed

4 files changed

+36
-15
lines changed

lcof/面试题58 - II. 左旋转字符串/README.md

+26-8
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828

2929
## 解法
3030

31-
需要注意,此题是旋转,而非位移。当 `n >= s.length` 时,字符串不变。
32-
3331
<!-- tabs:start -->
3432

3533
### **Python3**
@@ -50,6 +48,29 @@ class Solution {
5048
}
5149
```
5250

51+
### **C++**
52+
53+
```cpp
54+
class Solution {
55+
public:
56+
string reverseLeftWords(string s, int n) {
57+
return s.substr(n) + s.substr(0, n);
58+
}
59+
};
60+
```
61+
62+
```cpp
63+
class Solution {
64+
public:
65+
string reverseLeftWords(string s, int n) {
66+
reverse(s.begin(), s.begin() + n);
67+
reverse(s.begin() + n, s.end());
68+
reverse(s.begin(), s.end());
69+
return s;
70+
}
71+
};
72+
```
73+
5374
### **JavaScript**
5475

5576
```js
@@ -59,7 +80,7 @@ class Solution {
5980
* @return {string}
6081
*/
6182
var reverseLeftWords = function (s, n) {
62-
return s.substring(n) + s.substr(0, n);
83+
return s.substring(n) + s.substring(0, n);
6384
};
6485
```
6586

@@ -76,11 +97,8 @@ func reverseLeftWords(s string, n int) string {
7697
```rust
7798
impl Solution {
7899
pub fn reverse_left_words(s: String, n: i32) -> String {
79-
let len = s.len() as i32;
80-
if n >= len {
81-
return s;
82-
}
83-
String::from(&s[n as usize..]) + &s[..n as usize]
100+
let n = n as usize;
101+
String::from(&s[n..]) + &s[..n]
84102
}
85103
}
86104
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution {
2+
public:
3+
string reverseLeftWords(string s, int n) {
4+
return s.substr(n) + s.substr(0, n);
5+
}
6+
};

lcof/面试题58 - II. 左旋转字符串/Solution.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
* @return {string}
55
*/
66
var reverseLeftWords = function (s, n) {
7-
return s.substring(n) + s.substr(0, n);
7+
return s.substring(n) + s.substring(0, n);
88
};
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
impl Solution {
22
pub fn reverse_left_words(s: String, n: i32) -> String {
3-
let len = s.len() as i32;
4-
if n >= len {
5-
return s;
6-
}
7-
String::from(&s[n as usize..]) + &s[..n as usize]
3+
let n = n as usize;
4+
String::from(&s[n..]) + &s[..n]
85
}
9-
}
6+
}

0 commit comments

Comments
 (0)