Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c054218

Browse files
Merge pull request youngyangyang04#1341 from wzqwtt/patch14
添加(0020.有效的括号、1047.删除字符串中的所有相邻重复项)Scala版本
2 parents 49a5d83 + 98bdccb commit c054218

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

‎problems/0020.有效的括号.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,27 @@ bool isValid(char * s){
400400
return !stackTop;
401401
}
402402
```
403-
403+
Scala:
404+
```scala
405+
object Solution {
406+
import scala.collection.mutable
407+
def isValid(s: String): Boolean = {
408+
if(s.length % 2 != 0) return false // 如果字符串长度是奇数直接返回false
409+
val stack = mutable.Stack[Char]()
410+
// 循环遍历字符串
411+
for (i <- s.indices) {
412+
val c = s(i)
413+
if (c == '(' || c == '[' || c == '{') stack.push(c)
414+
else if(stack.isEmpty) return false // 如果没有(、[、{则直接返回false
415+
// 以下三种情况,不满足则直接返回false
416+
else if(c==')' && stack.pop() != '(') return false
417+
else if(c==']' && stack.pop() != '[') return false
418+
else if(c=='}' && stack.pop() != '{') return false
419+
}
420+
// 如果为空则正确匹配,否则还有余孽就不匹配
421+
stack.isEmpty
422+
}
423+
}
424+
```
404425
-----------------------
405426
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>

‎problems/1047.删除字符串中的所有相邻重复项.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,27 @@ func removeDuplicates(_ s: String) -> String {
374374
return String(stack)
375375
}
376376
```
377-
377+
Scala:
378+
```scala
379+
object Solution {
380+
import scala.collection.mutable
381+
def removeDuplicates(s: String): String = {
382+
var stack = mutable.Stack[Int]()
383+
var str = "" // 保存最终结果
384+
for (i <- s.indices) {
385+
var tmp = s(i)
386+
// 如果栈非空并且栈顶元素等于当前字符,那么删掉栈顶和字符串最后一个元素
387+
if (!stack.isEmpty && tmp == stack.head) {
388+
str = str.take(str.length - 1)
389+
stack.pop()
390+
} else {
391+
stack.push(tmp)
392+
str += tmp
393+
}
394+
}
395+
str
396+
}
397+
}
398+
```
378399
-----------------------
379400
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /