Skip to content

Commit e71a04a

Browse files
committed
feat: add solutions to lc problem: No.0709
No.0709.To Lower Case
1 parent ae731d1 commit e71a04a

File tree

7 files changed

+48
-50
lines changed

7 files changed

+48
-50
lines changed

solution/0700-0799/0709.To Lower Case/README.md

+19-17
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@
4444

4545
<!-- 这里可写通用的实现逻辑 -->
4646

47-
遍历字符串,遇到大写的字符,转小写。
47+
**方法一:模拟**
48+
49+
我们可以遍历字符串,对于每个大写字母,将其转换为小写字母。最后返回转换后的字符串即可。
50+
51+
时间复杂度 $O(n)$,其中 $n$ 为字符串的长度。忽略答案的空间消耗,空间复杂度 $O(1)$。
4852

4953
<!-- tabs:start -->
5054

@@ -55,9 +59,7 @@
5559
```python
5660
class Solution:
5761
def toLowerCase(self, s: str) -> str:
58-
return ''.join(
59-
[chr(ord(c) | 32) if ord('A') <= ord(c) <= ord('Z') else c for c in s]
60-
)
62+
return "".join([chr(ord(c) | 32) if c.isupper() else c for c in s])
6163
```
6264

6365
### **Java**
@@ -67,13 +69,13 @@ class Solution:
6769
```java
6870
class Solution {
6971
public String toLowerCase(String s) {
70-
char[] chars = s.toCharArray();
71-
for (int i = 0; i < chars.length; ++i) {
72-
if (chars[i] >= 'A' && chars[i] <= 'Z') {
73-
chars[i] |= 32;
72+
char[] cs = s.toCharArray();
73+
for (int i = 0; i < cs.length; ++i) {
74+
if (cs[i] >= 'A' && cs[i] <= 'Z') {
75+
cs[i] |= 32;
7476
}
7577
}
76-
return new String(chars);
78+
return String.valueOf(cs);
7779
}
7880
}
7981
```
@@ -84,9 +86,11 @@ class Solution {
8486
class Solution {
8587
public:
8688
string toLowerCase(string s) {
87-
for (char& c : s)
88-
if (c >= 'A' && c <= 'Z')
89+
for (char& c : s) {
90+
if (c >= 'A' && c <= 'Z') {
8991
c |= 32;
92+
}
93+
}
9094
return s;
9195
}
9296
};
@@ -96,15 +100,13 @@ public:
96100
97101
```go
98102
func toLowerCase(s string) string {
99-
sb := &strings.Builder{}
100-
sb.Grow(len(s))
101-
for _, c := range s {
103+
cs := []byte(s)
104+
for i, c := range cs {
102105
if c >= 'A' && c <= 'Z' {
103-
c |= 32
106+
cs[i] |= 32
104107
}
105-
sb.WriteRune(c)
106108
}
107-
return sb.String()
109+
return string(cs)
108110
}
109111
```
110112

solution/0700-0799/0709.To Lower Case/README_EN.md

+14-16
Original file line numberDiff line numberDiff line change
@@ -45,23 +45,21 @@
4545
```python
4646
class Solution:
4747
def toLowerCase(self, s: str) -> str:
48-
return ''.join(
49-
[chr(ord(c) | 32) if ord('A') <= ord(c) <= ord('Z') else c for c in s]
50-
)
48+
return "".join([chr(ord(c) | 32) if c.isupper() else c for c in s])
5149
```
5250

5351
### **Java**
5452

5553
```java
5654
class Solution {
5755
public String toLowerCase(String s) {
58-
char[] chars = s.toCharArray();
59-
for (int i = 0; i < chars.length; ++i) {
60-
if (chars[i] >= 'A' && chars[i] <= 'Z') {
61-
chars[i] |= 32;
56+
char[] cs = s.toCharArray();
57+
for (int i = 0; i < cs.length; ++i) {
58+
if (cs[i] >= 'A' && cs[i] <= 'Z') {
59+
cs[i] |= 32;
6260
}
6361
}
64-
return new String(chars);
62+
return String.valueOf(cs);
6563
}
6664
}
6765
```
@@ -72,9 +70,11 @@ class Solution {
7270
class Solution {
7371
public:
7472
string toLowerCase(string s) {
75-
for (char& c : s)
76-
if (c >= 'A' && c <= 'Z')
73+
for (char& c : s) {
74+
if (c >= 'A' && c <= 'Z') {
7775
c |= 32;
76+
}
77+
}
7878
return s;
7979
}
8080
};
@@ -84,15 +84,13 @@ public:
8484
8585
```go
8686
func toLowerCase(s string) string {
87-
sb := &strings.Builder{}
88-
sb.Grow(len(s))
89-
for _, c := range s {
87+
cs := []byte(s)
88+
for i, c := range cs {
9089
if c >= 'A' && c <= 'Z' {
91-
c |= 32
90+
cs[i] |= 32
9291
}
93-
sb.WriteRune(c)
9492
}
95-
return sb.String()
93+
return string(cs)
9694
}
9795
```
9896

Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
class Solution {
22
public:
33
string toLowerCase(string s) {
4-
for (char& c : s)
5-
if (c >= 'A' && c <= 'Z')
4+
for (char& c : s) {
5+
if (c >= 'A' && c <= 'Z') {
66
c |= 32;
7+
}
8+
}
79
return s;
810
}
911
};
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
func toLowerCase(s string) string {
2-
sb := &strings.Builder{}
3-
sb.Grow(len(s))
4-
for _, c := range s {
2+
cs := []byte(s)
3+
for i, c := range cs {
54
if c >= 'A' && c <= 'Z' {
6-
c |= 32
5+
cs[i] |= 32
76
}
8-
sb.WriteRune(c)
97
}
10-
return sb.String()
8+
return string(cs)
119
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
class Solution {
22
public String toLowerCase(String s) {
3-
char[] chars = s.toCharArray();
4-
for (int i = 0; i < chars.length; ++i) {
5-
if (chars[i] >= 'A' && chars[i] <= 'Z') {
6-
chars[i] += 32;
3+
char[] cs = s.toCharArray();
4+
for (int i = 0; i < cs.length; ++i) {
5+
if (cs[i] >= 'A' && cs[i] <= 'Z') {
6+
cs[i] |= 32;
77
}
88
}
9-
return new String(chars);
9+
return String.valueOf(cs);
1010
}
1111
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
class Solution:
22
def toLowerCase(self, s: str) -> str:
3-
return ''.join(
4-
[chr(ord(c) | 32) if ord('A') <= ord(c) <= ord('Z') else c for c in s]
5-
)
3+
return "".join([chr(ord(c) | 32) if c.isupper() else c for c in s])

solution/0700-0799/0712.Minimum ASCII Delete Sum for Two Strings/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ min(f[i-1][j] + s_1[i-1], f[i][j-1] + s_2[j-1]), & s_1[i-1] \neq s_2[j-1]
5858
\end{cases}
5959
$$
6060

61-
初始状态为 $f[0][j] = f[0][j-1] + s_2[j-1]$$f[i][0] = f[i-1][0] + s_1[i-1]$。
61+
初始状态为 $f[0][j] = f[0][j-1] + s_2[j-1]$, $f[i][0] = f[i-1][0] + s_1[i-1]$。
6262

6363
最后返回 $f[m][n]$ 即可。
6464

0 commit comments

Comments
 (0)