Skip to content

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)