有效的括號(C 編寫)

2021-09-27 06:03:58 字數 1126 閱讀 8008

題目描述:

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: 「()」

輸出: true

示例 2:

輸入: 「(){}」

輸出: true

示例 3:

輸入: 「(]」

輸出: false

示例 4:

輸入: 「([)]」

輸出: false

示例 5:

輸入: 「」

輸出: true

解題思路:

這道題的主要知識點是考棧操作。

首先大家可以先把第乙個符號為 』 ) 『,』 ] 『,』 } ',的這種情況直接返回false,而輸入的字元如果為奇數的話這種情況也可以返回false。

剩下的情況就是字元長度為偶數,並且第一位不是上述講的那三種符號的情況了,以下是**塊,這邊的話我建議大家把這兩種都自己寫一下:

(1)直接呼叫棧操作:

#include#include#includeusing namespace std;

class solution

'||s[0]==']'||length%2==1)

for(int i=0;i(2)自己寫棧的各種操作:

#include#include#define maxsize 100

using namespace std;

typedef struct

stack;

void initstack(stack &s)

void pushstack(stack &s,string sg)

int isemptystack(stack s)

'||len%2==1)

for(int i=0;iif(st[i]==')'||st[i]=='}'||st[i]==']')

')continue;

else}}

if(isemptystack(str)==1)

}

C 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意 空字串可被認為是有效字串。由於要對照字串對稱位置上的括號是否對應,決定採用棧來解決這一問題,若字串長度不為偶數則直接返回false,遍歷字串,讀到前括號時入棧,讀到後括號時若...

20 有效的括號 C

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

20 有效的括號(C )

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...