[HDU - 1870]愚人节的礼物

传送门(problem_link)

这道题目就是很普通的一道水题,容易错的点可能就是题目问你是最少要拆多少礼物。

((()()(B)))这样的话最少应该是3个才对

当拆到()()(B)的时候直接拆有B的就行了,因为题目求的是最少

所以这道题的解题思路就是一直读,遇到"( "入栈,遇到" )"出栈,遇到B的时候直接跳出然后将栈内元素个数输出即可。

复制代码
#include <bits/stdc++.h>
#define maxn 1000+5
using namespace std;
int main() {
    stack<int> st;
    char s[maxn];
    while(~scanf("%s", s)) {
        while(!st.empty()) st.pop();
        int len = strlen(s);
        for(int i = 0; i < len; i++) {
            if (s[i] == '(') st.push(i);
            else if (s[i] == ')') st.pop();
            else printf("%d\n", st.size());
        }
    }
    return 0;
}
View Code
复制代码

 

posted @   ViKyanite  阅读(111)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示
主题色彩