小米秋招题,遇到错误,无法排解,请求各位大佬帮助

题目:给定一个字符串str,判断是不是整体有效的括号字符串(整体有效:即存在一种括号匹配方案,使每个括号字符均能找到对应的反向括号,且字符串中不包含非括号字符)。
链接:https://www.nowcoder.com/questionTerminal/769abd985f3849d0b9415b082f94c192
来源:牛客网

输入描述:
输入包含一行,代表str(1≤lengthstr≤105)( 1 \leq length_{str} \leq 10^5)1lengthstr105


输出描述:
输出一行,如果str是整体有效的括号字符串,请输出“YES”,否则输出“NO”。
示例1

输入

(()) 

输出

YES 
示例2

输入

()a() 

输出

NO 

说明

()a()中包含了 ‘a’,a不是括号字符  

备注:
时间复杂度O(n)O(n)On,额外空间复杂度O(1)O(1)O1
我的答案是:
#include<iostream>
#include<stack>
#include<string>
using namespace std;

string str_yes_or_no(string str) {
    stack<char> s;
    for (int i = 0; i < str.length(); i++) {
        if (str[i] =='(') {
            s.push(str[i]);
        }
        else if (str[i] == ')') {
            if(s.top() == '(') {
                s.pop();
            }
            else {
                s.push(str[i]);
            }
        }
        else {
            return "NO";
        }
    }
    if (s.empty()) {
        return "YES";
    }
    else {
        return "NO";
    }
}

int main() {
    string str;
    cin >> str;
    cout << str_yes_or_no(str) << endl;
    return 0;
}

这个通过不了,请问是哪里错误?
#笔试题目##小米#
全部评论
你这也不是o1空间复杂度啊 用二进制
点赞 回复 分享
发布于 2021-06-24 17:56

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务