Skip to content

Commit e42dade

Browse files
committed
feat: update solutions to lc problem: No.1807
No.1807.Evaluate the Bracket Pairs of a String
1 parent 6b910be commit e42dade

File tree

5 files changed

+12
-27
lines changed

5 files changed

+12
-27
lines changed

solution/1800-1899/1807.Evaluate the Bracket Pairs of a String/README.md

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@
7878

7979
**方法一:哈希表 + 模拟**
8080

81-
我们先用哈希表 `d` 记录 `knowledge` 中的键值对。
81+
我们先用哈希表 $d$ 记录 `knowledge` 中的键值对。
8282

83-
然后遍历字符串 `s`,如果当前字符是左括号 `(`,则从当前位置开始向后遍历,直到遇到右括号 `)`,此时括号内的字符串即为键,我们在哈希表 `d` 中查找该键对应的值,如果找到了,则将该值替换到括号内,否则替换为 `?`
83+
然后遍历字符串 $s$,如果当前字符是左括号 `'('`,则从当前位置开始向后遍历,直到遇到右括号 `')'`,此时括号内的字符串即为键,我们在哈希表 $d$ 中查找该键对应的值,如果找到了,则将该值替换到括号内,否则替换为 `'?'`
8484

85-
时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 为字符串 `s` 的长度。
85+
时间复杂度 $O(n + m)$,空间复杂度 $O(L)$。其中 $n$ 和 $m$ 分别为字符串 $s$ 和列表 `knowledge` 的长度,而 $L$ 为 `knowledge` 中所有字符串的长度之和
8686

8787
<!-- tabs:start -->
8888

@@ -119,16 +119,14 @@ class Solution {
119119
d.put(e.get(0), e.get(1));
120120
}
121121
StringBuilder ans = new StringBuilder();
122-
int i = 0, n = s.length();
123-
while (i < n) {
122+
for (int i = 0; i < s.length(); ++i) {
124123
if (s.charAt(i) == '(') {
125124
int j = s.indexOf(')', i + 1);
126125
ans.append(d.getOrDefault(s.substring(i + 1, j), "?"));
127126
i = j;
128127
} else {
129128
ans.append(s.charAt(i));
130129
}
131-
++i;
132130
}
133131
return ans.toString();
134132
}
@@ -146,8 +144,7 @@ public:
146144
d[e[0]] = e[1];
147145
}
148146
string ans;
149-
int i = 0, n = s.size();
150-
while (i < n) {
147+
for (int i = 0; i < s.size(); ++i) {
151148
if (s[i] == '(') {
152149
int j = s.find(")", i + 1);
153150
auto t = s.substr(i + 1, j - i - 1);
@@ -156,7 +153,6 @@ public:
156153
} else {
157154
ans += s[i];
158155
}
159-
++i;
160156
}
161157
return ans;
162158
}
@@ -172,8 +168,7 @@ func evaluate(s string, knowledge [][]string) string {
172168
d[v[0]] = v[1]
173169
}
174170
var ans strings.Builder
175-
i, n := 0, len(s)
176-
for ; i < n; i++ {
171+
for i := 0; i < len(s); i++ {
177172
if s[i] == '(' {
178173
j := i + 1
179174
for s[j] != ')' {

solution/1800-1899/1807.Evaluate the Bracket Pairs of a String/README_EN.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,14 @@ class Solution {
101101
d.put(e.get(0), e.get(1));
102102
}
103103
StringBuilder ans = new StringBuilder();
104-
int i = 0, n = s.length();
105-
while (i < n) {
104+
for (int i = 0; i < s.length(); ++i) {
106105
if (s.charAt(i) == '(') {
107106
int j = s.indexOf(')', i + 1);
108107
ans.append(d.getOrDefault(s.substring(i + 1, j), "?"));
109108
i = j;
110109
} else {
111110
ans.append(s.charAt(i));
112111
}
113-
++i;
114112
}
115113
return ans.toString();
116114
}
@@ -128,8 +126,7 @@ public:
128126
d[e[0]] = e[1];
129127
}
130128
string ans;
131-
int i = 0, n = s.size();
132-
while (i < n) {
129+
for (int i = 0; i < s.size(); ++i) {
133130
if (s[i] == '(') {
134131
int j = s.find(")", i + 1);
135132
auto t = s.substr(i + 1, j - i - 1);
@@ -138,7 +135,6 @@ public:
138135
} else {
139136
ans += s[i];
140137
}
141-
++i;
142138
}
143139
return ans;
144140
}
@@ -154,8 +150,7 @@ func evaluate(s string, knowledge [][]string) string {
154150
d[v[0]] = v[1]
155151
}
156152
var ans strings.Builder
157-
i, n := 0, len(s)
158-
for ; i < n; i++ {
153+
for i := 0; i < len(s); i++ {
159154
if s[i] == '(' {
160155
j := i + 1
161156
for s[j] != ')' {

solution/1800-1899/1807.Evaluate the Bracket Pairs of a String/Solution.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ class Solution {
66
d[e[0]] = e[1];
77
}
88
string ans;
9-
int i = 0, n = s.size();
10-
while (i < n) {
9+
for (int i = 0; i < s.size(); ++i) {
1110
if (s[i] == '(') {
1211
int j = s.find(")", i + 1);
1312
auto t = s.substr(i + 1, j - i - 1);
@@ -16,7 +15,6 @@ class Solution {
1615
} else {
1716
ans += s[i];
1817
}
19-
++i;
2018
}
2119
return ans;
2220
}

solution/1800-1899/1807.Evaluate the Bracket Pairs of a String/Solution.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ func evaluate(s string, knowledge [][]string) string {
44
d[v[0]] = v[1]
55
}
66
var ans strings.Builder
7-
i, n := 0, len(s)
8-
for ; i < n; i++ {
7+
for i := 0; i < len(s); i++ {
98
if s[i] == '(' {
109
j := i + 1
1110
for s[j] != ')' {

solution/1800-1899/1807.Evaluate the Bracket Pairs of a String/Solution.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@ public String evaluate(String s, List<List<String>> knowledge) {
55
d.put(e.get(0), e.get(1));
66
}
77
StringBuilder ans = new StringBuilder();
8-
int i = 0, n = s.length();
9-
while (i < n) {
8+
for (int i = 0; i < s.length(); ++i) {
109
if (s.charAt(i) == '(') {
1110
int j = s.indexOf(')', i + 1);
1211
ans.append(d.getOrDefault(s.substring(i + 1, j), "?"));
1312
i = j;
1413
} else {
1514
ans.append(s.charAt(i));
1615
}
17-
++i;
1816
}
1917
return ans.toString();
2018
}

0 commit comments

Comments
 (0)