棧 —— 數據結構基礎刷題路程

一、P1739 表達式括號匹配 - 洛谷

算法代碼:

#include<bits/stdc++.h>
using namespace std;
const int N=300008;
struct mystack
{int a[N];int t=-1;//壓棧void push(int data){a[++t]=data;	} //取棧頂元素int top(){return a[t];	} //彈出棧頂元素void pop(){if(t>-1){t--;	}	} //取棧的大小int size(){return t+1;	} //判空int empty(){return t=-1?1:0;	} 
};
int main()
{mystack st;char x;while(cin>>x){if(x=='@'){break;}if(x=='('){st.push(x);}if(x==')'){if(st.empty()){cout<<"NO";}else{st.pop();}}}if(st.empty()){cout<<"YES";}else{cout<<"NO";}return 0;	
} 

二、P1734 - [NewOJ Contest 4] 排列 - New Online Judge

算法代碼:?

#include<bits/stdc++.h>
using namespace std;
const int N=300008;
int a[N]; 
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}stack<int> st;long long ans=0;for(int i=1;i<=n;i++){while(!st.empty()&&st.top()<a[i]){st.pop();if(!st.empty()){int last=st.top();ans+=(i-last+1);}}st.push(a[i]);}ans+=(n-1)*2;cout<<ans;return 0;	
} 

三、1.妮妮的神秘寶箱 - 藍橋云課

算法代碼:

#include <bits/stdc++.h>
using namespace std;int main() {string s;cin >> s;stack<char> st;for (char c : s) {if (c == '(' || c == '[' || c == '{') {st.push(c);} else if (c == ')' || c == ']' || c == '}') {if (st.empty()) {cout << "N";  // 統一輸出為 "N"return 0;}char _top = st.top();if ((c == ')' && _top == '(') || (c == ']' && _top == '[') || (c == '}' && _top == '{')) {st.pop();}else{cout << "N";return 0;} }// 忽略其他字符(如 '.')}cout << (st.empty() ? "Y" : "N");return 0;
}

四、1.小藍的括號串1 - 藍橋云課

算法代碼:

#include <bits/stdc++.h>
using namespace std;
int main()
{stack<char> st;int n;cin>>n;char ch;while(cin>>ch){if(ch=='('){st.push(ch);}if(ch==')'){if(st.empty()){cout<<"No";return 0;}char _top=st.top();if(_top=='('&&ch==')'){st.pop();}}}if(st.empty()){cout<<"Yes";}else{cout<<"No";}return 0;
}

五、1.小邋遢的衣櫥 - 藍橋云課

算法代碼:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,i;string t1,t2,t3;stack<string> a;cin>>n;for(i=0;i<n;i++){cin>>t1>>t2;if(t1=="in")a.push(t2);if(t1=="out"){if(a.empty())return 0;for(t3=a.top();t3!=t2;a.pop()){if(a.empty())return 0;t3=a.top();}}}if(a.empty())cout<<"Empty";elsecout<<a.top();return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899918.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899918.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

瑞昱RTD2556QR顯示器驅動芯片

一、概述 RTD2556QR芯片是由Realtek公司精心研發的一款高性能顯示驅動芯片&#xff0c;專為滿足現代顯示設備對高分辨率、多功能接口及穩定性能的需求而設計。該芯片憑借其卓越的技術特性和廣泛的應用領域&#xff0c;在顯示驅動市場中占據重要地位。它集成了多種先進的功能模…

PyQt5和OpenCV車牌識別系統

有需要請加文章底部Q哦 可遠程調試 PyQt5和OpenCV車牌識別系統 一 介紹 此車牌識別系統基于PyQt5和OpenCV開發&#xff0c;藍牌&#xff0c;新能源(綠牌)&#xff0c;黃牌&#xff0c;白牌均可以準確識別&#xff0c;支持中文識別&#xff0c;可以導出識別結果(Excel格式)。此…

學有所記- 探索FastAPI在docker上的部署

目標&#xff1a; 學習怎樣在docker中安裝部署FastAPI&#xff0c;完成項目結構的搭建以及hello world的運行 背景&#xff1a; 公司內服務器資源有限&#xff0c;為了共享算力資源&#xff0c;同時又能隔離運行環境&#xff0c;因此采用了docker部署的方式&#xff0c;進行各…

HTTP keepalive 詳解

一、簡介 HTTP協議早期版本&#xff0c;比如1.0&#xff0c;默認是不使用持久連接的&#xff0c;也就是每個請求/響應之后都會關閉TCP連接。這樣的話&#xff0c;每次請求都需要重新建立連接&#xff0c;增加了延遲和資源消耗。Keep-Alive的作用是保持連接&#xff0c;讓多個請…

長短期記憶神經網絡(LSTM)基礎學習與實例:預測序列的未來

目錄 1. 前言 2. LSTM的基本原理 2.1 LSTM基本結構 2.2 LSTM的計算過程 3. LSTM實例&#xff1a;預測序列的未來 3.1 數據準備 3.2 模型構建 3.3 模型訓練 3.4 模型預測 3.5 完整程序預測序列的未來 4. 總結 1. 前言 在深度學習領域&#xff0c;循環神經網絡&…

基于機器學習的三國時期諸葛亮北伐失敗因素量化分析

一、研究背景與方法論 1.1 歷史問題的數據化挑戰 三國時期&#xff08;220-280年&#xff09;的戰爭史存在史料分散、數據缺失的特點。本研究通過構建包含軍事、經濟、地理、政治四大維度的結構化數據庫&#xff0c;收錄建安十二年&#xff08;207年&#xff09;至建興十二年…

藍橋杯省模擬賽 數位和

問題描述 只能被 1 和本身整除的數稱為質數。 請問在 1 &#xff08;含&#xff09;到 1000000 &#xff08;含&#xff09;中&#xff0c;有多少個質數的各個數位上的數字之和為 23 。 提示&#xff1a;599 就是這樣一個質數&#xff0c;各個數位上的數字之和為 59923 。 #…

Timer的底層實現原理?

Timer 是 Java 中用于定時任務調度的基礎工具類,其底層實現基于 單線程+任務隊列 的模型。以下是 Timer 的底層實現原理的詳細分析: 一、核心組件 TimerThread 繼承自 Thread,是 Timer 的工作線程,負責從隊列中提取任務并執行。通過 while (true) 循環持續檢查任務隊列。Ta…

Java 枚舉類 Key-Value 映射的幾種實現方式及最佳實踐

Java 枚舉類 Key-Value 映射的幾種實現方式及最佳實踐 前言 在 Java 開發中&#xff0c;枚舉(Enum)是一種特殊的類&#xff0c;它能夠定義一組固定的常量。在實際應用中&#xff0c;我們經常需要為枚舉常量添加額外的屬性&#xff0c;并實現 key-value 的映射關系。本文將詳細…

青少年編程與數學 02-015 大學數學知識點 01課題、概要

青少年編程與數學 02-015 大學數學知識點 01課題、概要 一、線性代數二、概率論與數理統計三、微積分四、優化理論五、離散數學六、數值分析七、信息論 《青少年編程與數學》課程要求&#xff0c;在高中畢業前&#xff0c;盡量完成大部分大學數學知識的學習。一般可以通過線上課…

智能打印預約系統:微信小程序+SSM框架實戰項目

微信小程序打印室預約系統&#xff0c;采用SSM&#xff08;SpringSpringMVCMyBatis&#xff09;經典框架組合。 一、系統核心功能詳解 1. 智能化管理后臺 ?用戶數據看板?打印店資源管理?預約動態監控?服務評價系統 2. 微信小程序端 ?智能定位服務?預約時段選擇?文件…

DataX 3.0 實戰案例

第五章 實戰案例 5.1. 案例一 5.1.1. 案例介紹 MySQL數據庫中有兩張表&#xff1a;用戶表(users)&#xff0c;訂單表(orders)。其中用戶表中存儲的是所有的用戶的信息&#xff0c;訂單表中存儲的是所有的訂單的信息。表結構如下&#xff1a; 用戶表 users: id&#xff1a;用…

設計模式學習(1)

面向對象設計原則 單一職責 每個類只有一個職責&#xff0c;并被完整的封裝在類中&#xff0c;該原則用來控制類的粒度。 例如Mapper&#xff0c;controller都只負責一個業務。 開閉原則 應該對擴展開放&#xff0c;而對修改封閉&#xff0c;例如定義接口或是抽象類作為抽…

在 Rocky Linux 9.2 上編譯安裝 Redis 6.2.6

文章目錄 在 Rocky Linux 9.2 上編譯安裝 Redis 6.2.6Redis 介紹官網Redis 的核心特性高性能支持多種數據結構多種持久化機制復制與高可用2.5 事務與 Lua 腳本消息隊列功能 Redis 適用場景Redis 與其他數據庫對比Redis 的優勢與劣勢Redis 優勢Redis 劣勢 部署過程系統環境信息環…

量子計算與經典計算的融合與未來

最近研學過程中發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊下方超鏈接跳轉到網站人工智能及編程語言學習教程。讀者們可以通過里面的文章詳細了解一下人工智能及其編程等教程和學習方法。下面進入文章正…

數據結構(4)——帶哨兵位循環雙向鏈表

目錄 前言 一、帶哨兵的循環雙向鏈表是什么 二、鏈表的實現 2.1規定結構體 2.2創建節點 2.3初始化 2.4打印 2.5檢驗是否為空 2.6銷毀鏈表 2.7尾插 2.8尾刪 2.9頭插 2.10頭刪 2.11尋找特定節點 2.12任意位置插入&#xff08;pos前&#xff09; 2.13刪除任意節點 …

Github 2025-03-30 php開源項目日報 Top10

根據Github Trendings的統計,今日(2025-03-30統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量PHP項目10TypeScript項目1Coolify: 開源自助云平臺 創建周期:1112 天開發語言:PHP, Blade協議類型:Apache License 2.0Star數量:10527 個Fo…

3. 線程間共享數據

1. 線程共享數據會造成什么問題&#xff1f; 1.1 讀寫不一致 多線程讀不會造成數據變動&#xff0c;所以沒有問題。只要有一個線程設計修改數據&#xff0c;就會導致數據共享出現問題&#xff0c;簡單的是數據不一致&#xff0c;嚴重的是程序訪問已經釋放的內存&#xff0c;造…

JAVA垃圾回收算法和判斷垃圾的算法

一、判斷垃圾的算法 判斷對象是否為垃圾的核心是確定對象是否不再被使用。Java主要采用以下兩種算法&#xff1a; 1. 引用計數法&#xff08;Reference Counting&#xff09; 原理&#xff1a;每個對象維護一個引用計數器&#xff0c;記錄被引用的次數。當引用被添加時計數器…

界面架構 - MVVM (Qt)

MVVM MVVM 的主要特點示例示例功能示例代碼ViewModel 類&#xff08;C&#xff09;主函數入口&#xff08;main.cpp&#xff09; QML 文件&#xff08;main.qml&#xff09;總結 MVVM&#xff08;Model-View-ViewModel&#xff09;架構是一種旨在進一步分離界面和業務邏輯的設計…