给出一个字符串,字符串中只有(、)、[、]、{、}六种字符。要求判断字符串中的括号是否合法匹配。
时间: 2024-05-09 12:19:01 浏览: 4
思路:
1. 遍历字符串的每一个字符,遇到左括号则入栈,遇到右括号则与栈顶元素匹配,若匹配成功则弹出栈顶元素,否则返回false。
2. 最后判断栈是否为空,若为空则说明所有括号都匹配成功,返回true,否则返回false。
代码实现:
```python
def isValid(s: str) -> bool:
stack = []
for c in s:
if c in ('(', '[', '{'):
stack.append(c)
else:
if not stack:
return False
if c == ')' and stack[-1] == '(':
stack.pop()
elif c == ']' and stack[-1] == '[':
stack.pop()
elif c == '}' and stack[-1] == '{':
stack.pop()
else:
return False
return not stack
```
时间复杂度:O(n)
空间复杂度:O(n)
相关问题
java怎么判断字符串中是否只有一个空格第六个字符是空格
可以使用String类的charAt()方法来判断字符串中的某个字符是不是空格,然后结合字符串的长度来判断是否只有一个空格,并且第六个字符是不是空格。具体实现如下:
```java
String str = "hello world";
int spaceCount = 0; // 空格计数器
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
spaceCount++; // 如果字符是空格,则空格计数器加1
}
if (i == 5 && str.charAt(i) != ' ') {
// 如果第六个字符不是空格,则直接返回false
return false;
}
}
if (spaceCount == 1) {
// 如果只有一个空格,则返回true
return true;
} else {
// 否则返回false
return false;
}
```
上述代码首先定义一个空格计数器,然后遍历字符串中的每个字符,并判断其是否是空格。同时,如果字符串的第六个字符不是空格,则直接返回false。最后,如果空格计数器为1,则说明字符串中只有一个空格,返回true,否则返回false。
js判断字符串中包含另外一个字符串
你可以使用 JavaScript 中的 `includes()` 方法来判断一个字符串是否包含另一个字符串。这个方法返回一个布尔值,如果原始字符串中包含目标字符串,则返回 `true`,否则返回 `false`。
下面是一个示例代码:
```javascript
const str = "Hello World";
const targetStr = "World";
if (str.includes(targetStr)) {
console.log("字符串中包含目标字符串");
} else {
console.log("字符串中不包含目标字符串");
}
```
在上面的代码中,`str.includes(targetStr)` 表达式判断 `str` 是否包含 `targetStr` 字符串。如果条件成立,则打印 "字符串中包含目标字符串";否则打印 "字符串中不包含目标字符串"。