Parenthesis(括號平衡串,匹配問題)

2021-08-06 04:07:07 字數 832 閱讀 1448

題意:給定乙個長度為n的括號平衡串,q次交換,問交換後是不還是平衡串? 是輸出yes,不是輸出no。

分析: 未交換時,就是乙個平衡串,即括號都能夠匹配

那麼 交換的位置 可能有以下幾種情況:

1.原來就是一樣的 或者 左邊的是』)』,右邊的是』(』 直接特判 (少一種判斷會tle)

2.左邊的是』(』 ,右邊的是』)』 計數判斷

#include

#include

#include

using

namespace

std;

const

int mod=10056;

const

int n=1e5+5;

typedef

long

long ll;

#define mem(a,n) memset(a,n,sizeof(a))

char str[n];

int main()

if(a>b) swap(a,b);

if(str[a-1]==')'&&str[b-1]=='(')

swap(str[a-1],str[b-1]);

int ans=0;

for(int i=0; iif(str[i]=='(')

ans++;

else ans--;

if(ans<0) break;

}printf("%s\n",ans?"no":"yes");

swap(str[a-1],str[b-1]);/// 還要換回去!}}

return

0;}

平衡括號問題

題意 多組案例,輸入由 和 組成的括號序列,判斷是否合法 構成平衡 合法條件如下 1 空字串合法。2 如果a和b都合法,則ab合法。3 如果a合法則 a 和 a 都合法。案例 sample input 3 sample output yes noyes 分析 括號的三種非平衡狀態 1.2.3.設計思...

平衡的括號問題

平衡的括號 要運用棧的一些知識,stl。棧的特點是 先進後出 標頭檔案是,宣告方式 stacks 主要操作 push 把元素壓入 棧頂 又稱入棧 pop 從棧頂把元素彈出,出棧 top 取棧頂元素 但不刪除 size 測棧長 個數 empty 判斷棧是否為空 題目大意 輸入乙個包含 和 的括號序列,...

uva 673 平衡的括號

這道題目要求判斷括號是否平衡。由於是判斷就很簡單了,利用stl裡面的stack棧,遇到 或者 就入棧,遇到 或 就比較出棧。注意下可能輸入空字元 include include include include include include define maxn 200 using namespa...