本文介绍: 题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s判断字符串是否有效有效字符串需满足:1. 左括号必须用相同类型的右括号闭合。2. 左括号必须以正确顺序闭合。算法实现func isValid(_ s: String) -> Bool { let pairMap = [“(“: “)”, “{“: “}”, “[“: “]”] as [Character: Character] var stack = [Cha

题目

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效

有效字符串需满足:

1. 左括号必须用相同类型的右括号闭合。
2. 左括号必须以正确顺序闭合。

算法实现

func isValid(_ s: String) -> Bool {
        let pairMap = ["(": ")", "{": "}", "[": "]"] as [Character: Character]
        var stack = [Character]()
        for character in s {
            // is a key
            if pairMap.keys.contains(character) {
                stack.append(character)
            } else {
                // is a value
                guard let key = stack.last else {
                    return false
                }
                if pairMap[key] == character {
                    stack.popLast()
                } else {
                    return false
                }
            }
        }
        return stack.isEmpty
    }

注意点

  1. Swift中Character类型
  2. as关键字的运用;

原文地址:https://blog.csdn.net/qfeung/article/details/124223410

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_38248.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注