題目描述:
給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: 「()」
輸出: true
示例 2:
輸入: 「(){}」
輸出: true
示例 3:
輸入: 「(]」
輸出: false
示例 4:
輸入: 「([)]」
輸出: false
示例 5:
輸入: 「」
輸出: true
解題思路:
利用資料結構—棧–進行解決,左括號直接壓進棧中,有括號根據情況不同進行不同處理,如果有左括號則進行判斷,看是否匹配,如果沒有直接返回false
**實現:
bool isvalid
(char
* s)
//利用棧結構體進行判斷
int slen =
strlen
(s);
char
* stack =
(char*)
malloc
(slen +1)
;if(stack ==
null
)memset
(stack,
0x00
, slen)
;int stackindex =0;
int i;
for(i =
0; i < slen; i++
)case
')':
if(stack[stackindex -1]
=='('
)else
break;}
case
'[':
case
']':
if(stack[stackindex -1]
=='['
)else
break;}
case
'case
'}':
if(stack[stackindex -1]
=='else
break;}
default:}
}free
(stack)
; stack =
null;if
(stackindex ==0)
return false;
}
有效的括號
題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。解題思路 坦白來講這道題真的沒什麼思路,掉的坑也比較多,因為審題不認真,最後的一句話,注意空字串可被認為是有效字串。被吃掉了 最後提交的 執...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...