题解 | 穷哈哈~

穷哈哈~

https://www.nowcoder.com/practice/5b3184b233f34fb39a7f259ae82eb42c

用了一个比较麻烦的方法:使用栈来进行模拟。栈的size代表当前维护的合法子串长度,遇到a, h只要它和栈顶组成"ah" "ha"即入栈,如果不符合代表当前子串已达最大合法长度,全部出栈。

#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    int len, idx = 0;
    cin >> len;
    cin >> s;
    stack<int> stk;
    int res = 0;
    while (idx < len) {
        if (s[idx] != 'a' && s[idx] != 'h') {
            res = max(res, (int)stk.size());
            while (!stk.empty()) stk.pop();
        } else {
            if (stk.empty()) {
                stk.push(s[idx]);
            } else {
                if (s[idx] == 'a') {
                    if (stk.top() == 'h') {
                        stk.push(s[idx]);
                    } else {
                        res = max(res, (int)stk.size());
                        while (!stk.empty()) stk.pop();
                        stk.push(s[idx]);
                    }
                }
                else if (s[idx] == 'h') {
                    if (stk.top() == 'a') {
                        stk.push(s[idx]);
                    } else {
                        res = max(res, (int)stk.size());
                        while (!stk.empty()) stk.pop();
                        stk.push(s[idx]);
                    }
                }
            }
        }
        idx++;


    }
    res = max(res, (int)stk.size());
    cout << res;

}
全部评论

相关推荐

08-14 11:30
门头沟学院 Java
失去了成为米孝子的机会
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
08-11 17:26
湘潭大学 营销
假如是小公司入门的,后续还能进大厂吗?投了大厂的简历,接了面试之后一直都没有反馈,大多数连面试的机会都没有给,我承认我破防了
WBYDCOFFIC...:大厂优势太高了,我之前在美的实习完投新的实习是一个中厂,部门的领导是从美的出来的,面试就和聊天一样,在美的的时候部门好多都是从华为出来的,一环套一环
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务