棧應用:括號匹配

1:普通字符串括號匹配

#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool mat(char,char);
int if_match(string);
int main(){string a;cin>>a;cout<<if_match(a)<<endl;return 0;
}
bool mat(char a,char b){if(a=='(')return b==')';if(a=='[')return b==']';if(a=='{')return b=='}';return 0;
}
int if_match(string input){//返回第一個不匹配的位置stack<char> t;int il=input.length();for(int i=0;i<il;i++){if(input[i]=='('||input[i]=='['||input[i]=='{'){t.push(input[i]);}else if(input[i]==')'||input[i]==']'||input[i]=='}'){if(t.empty()==true){return i;}if(!mat(t.top(),input[i])){return i;}else {t.pop();}}}if(t.empty())return -1;else return il-1;
}

2:僅適用于/**/,幾種括號純字符串的檢測

輸入:僅包含'('、')'、'['、']'、'{'、'}'、/、*的字符串

輸出:若匹配輸出“Yes”,

? ? ? ? ? ?若不匹配輸出“No”。

#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool mat(char,char);
bool if_match(string);
int main(){string a;cin>>a;if(if_match(a)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}return 0;
}
bool mat(char a,char b){if(a=='(')return b==')';if(a=='[')return b==']';if(a=='{')return b=='}';return 0;
}
bool if_match(string input){///*==<,*/==>stack<char> t;int il=input.length();for(int i=0;i<il;i++){//cout<<i<<' '<<(t.empty()?'?':t.top())<<endl;if(i<il-1){if(input[i]=='*'&&input[i+1]!='/'){return 0;}if(input[i]=='/'&&input[i+1]!='*'){return 0;}if(input[i]=='/'&&input[i+1]=='*'){t.push('<');i++;}if(input[i]=='*'&&input[i+1]=='/'){if(t.empty()==true){return 0;}if(t.top()=='<'){t.pop();i++;}else {return 0;}}}else{if(input[i]=='*'||input[i]=='/')return 0;}if(input[i]=='('||input[i]=='['||input[i]=='{'){t.push(input[i]);}else if(input[i]==')'||input[i]==']'||input[i]=='}'){if(t.empty()==true){return 0;}if(!mat(t.top(),input[i])){return 0;}else {t.pop();}}}return t.empty();
}

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

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

相關文章

某東h5st_5.1(補環境)

JS逆向實戰——某東h5st_5.1&#xff08;補環境&#xff09; 聲明網站流程分析結果展示總結 聲明 本文章中所有內容僅供學習交流&#xff0c;抓包內容、敏感網址、數據接口均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無…

新增Webhook通知功能,文檔目錄樹展示性能優化,zyplayer-doc 2.5.1 發布啦!

zyplayer-doc是一款適合企業和個人使用的WIKI知識庫管理工具&#xff0c;支持在線編輯富文本、Markdown、表格、Office文檔、API接口、思維導圖、Drawio以及任意的文本文件&#xff0c;支持基于知識庫的AI問答&#xff0c;專為私有化部署而設計&#xff0c;最大程度上保證企業或…

macOS安全隱私最佳實踐分析

1. 引言 隨著數字世界的不斷擴展&#xff0c;個人和組織面臨的安全與隱私威脅也日益增加。作為專業的安全合規與隱私保護研究團隊&#xff0c;Kaamel 對 macOS 系統的安全隱私現狀進行了全面分析&#xff0c;并提出了一系列最佳實踐建議&#xff0c;旨在幫助用戶更好地保護自己…

架構設計之異地多活與單元化(Set化)

公司的業務到達一定規模后,往往會考慮做多數據中心。一方面是面臨業務增長帶來的挑戰,單個數據中心變得難以支撐;另一方面出于對業務容災的考量,也可能在多個城市建立數據中心達到容災目的。單元化(Set化)是作為異地多活的一個解決方案。 一、什么是異地多活 異地多活是…

Kettle學習

一、Kettle 簡介 Kettle(現稱為 Pentaho Data Integration)是一款開源ETL工具,支持從多種數據源抽取、轉換和加載數據,廣泛應用于數據倉庫構建、數據遷移和清洗。其核心優勢包括: 可視化操作:通過拖拽組件設計數據處理流程(轉換和作業)。多數據源支持:數據庫(MySQL/…

蘋果計劃2026年底前實現美版iPhone“印度造”,以減輕關稅及地緣政治風險

基于 6 個來源 據多家媒體報道&#xff0c;蘋果公司計劃在2026年底前&#xff0c;實現在印度組裝銷往美國的大部分或全部iPhone手機&#xff0c;以減輕關稅和地緣政治緊張局勢帶來的風險。這一目標意味著蘋果需將印度的iPhone產量增加一倍以上&#xff0c;凸顯其供應鏈多元化戰…

【C++】googletest_TEST/TEST_F

在 Google Test 框架中&#xff0c;TEST 和 TEST_F 是定義測試用例的兩個核心宏&#xff0c;它們的區別主要體現在 測試上下文的管理方式 上。以下是二者的詳細對比&#xff1a; 1. TEST 宏 定義方式 TEST(TestSuiteName, TestName) {// 測試邏輯 }特點 獨立上下文&#xff…

14-DevOps-快速部署Kubernetes

在學習階段&#xff0c;為了能快速部署Kubernetes&#xff0c;這里用一個快速安裝工具&#xff1a;Kubeode&#xff0c;來完成Kubernetes的部署。 接下來部署一個單機&#xff0c;一主一從的Kubernetes。一主一從都部署在同一臺服務器上。 在虛擬機新開一個服務器&#xff0c…

Java 異常處理全解析:從基礎到自定義異常的實戰指南

Java 異常處理全解析&#xff1a;從基礎到自定義異常的實戰指南 一、Java 異常體系&#xff1a;Error 與 Exception 的本質區別 1. 異常體系核心架構 Java把異常當作對象來處理&#xff0c;并定義一個基類java.lang.Throwable作為所有異常的超類。 在Java API中已經定義了許…

redis 數據類型新手練習系列——string類型

redis 數據類型 Redis 主要支持以下幾種數據類型&#xff1a; &#xff08;1&#xff09;string&#xff08;字符串&#xff09;: 基本的數據存儲單元&#xff0c;可以存儲字符串、整數或者浮點數。 &#xff08;2&#xff09;hash&#xff08;哈希&#xff09;:一個鍵值對集…

Android12源碼編譯及刷機

由于google的AOSP源碼拉取經常失敗&#xff0c;編譯還經常出現各種問題。這里根據香橙派Orange Pi 5 Plus&#xff08;Android12電視鏡像&#xff09;源碼進行編譯演示。 RK芯片的開發板可玩性很高&#xff0c;這里以電視版本android系統為例子&#xff0c;學習的同時還可以當…

從零實現 registry.k8s.io/pause:3.8 鏡像的導出與導入

以下是為 registry.k8s.io/pause:3.8 鏡像的導出與導入操作定制的完整教程&#xff0c;適用于 Kubernetes 集群中使用 containerd 作為容器運行時的場景。本教程包含詳細步驟、常見問題解析及注意事項。 從零實現 registry.k8s.io/pause:3.8 鏡像的導出與導入 背景說明 Kuber…

Redis和MQ的區別

redis是一個高性能的key-value數據庫&#xff0c;支持消息推送功能&#xff0c;可以當做一個輕量級的隊列服務器使用。 redis只是提供一個高性能的、原子操作內存鍵值隊&#xff0c;具有高速訪問能力&#xff0c;雖然可以做消息隊列的存儲&#xff0c;但不具備消息隊列的任何功…

Centos7系統防火墻使用教程

CentOS 7是一種常見的Linux操作系統&#xff0c;防火墻作為網絡安全的第一道防線&#xff0c;對于服務器的安全至關重要。本文將介紹CentOS 7系統中防火墻的使用教程&#xff0c;包括如何開啟、關閉、配置以及防火墻規則的添加和刪除。 一、查看防火墻狀態 在開始操作之前&am…

Uniapp:navigator(頁面跳轉)

目錄 一、基本概述二、屬性說明三、具體使用一、基本概述 頁面跳轉。該組件類似HTML中的<a>組件,但只能跳轉本地頁面。目標頁面必須在pages.json中注冊。 二、屬性說明 屬性名類型默認值說明平臺差異說明urlString應用內的跳轉鏈接,值為相對路徑或絕對路徑,如:“……

大疆機場及無人機上云(航線規劃、指令飛行...)

系統操作預覽&#xff1a; 包含一鍵起飛、指令飛行、云臺控制、變焦、航線規劃、空域規劃、成果數據展示、實時飛行模擬、任務派發等 大疆無人機飛控平臺&#xff08;航線規劃、機場3、私有化部署&#xff09;_嗶哩嗶哩_bilibili 2025-04-02 更新 start、 已支持大疆機場3。…

【運維】云端掌控:用Python和Boto3實現AWS資源自動化管理

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 在云計算時代,AWS(Amazon Web Services)作為領先的云服務平臺,其資源管理的高效性對企業至關重要。本文深入探討如何利用Python的boto3…

Java ThreadLocal與內存泄漏

當我們利用 ThreadLocal 來管理數據時&#xff0c;我們不可避免地會面臨內存泄漏的風險。 原因在于 ThreadLocal 的工作方式。當我們在當前線程的 ThreadLocalMap 中存儲一個值時&#xff0c;一旦這個值不再需要&#xff0c;釋放它就變得至關重要。如果不這樣做&#xff0c;那么…

Linux之netlink(2)libnl使用介紹(1)

Linux之netlink(2)Libnl3使用介紹(1) Author&#xff1a;Onceday Date&#xff1a;2025年4月26日 漫漫長路&#xff0c;才剛剛開始… 全系列文章可查看專欄: Linux內核知識_Once-Day的博客-CSDN博客 本文翻譯自libnl3官方文檔&#xff1a;Netlink Library (libnl) 參考文檔…