題目描述:
給定乙個只包括'('
,')'
,''
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
解題思路:
坦白來講這道題真的沒什麼思路,掉的坑也比較多,因為審題不認真,最後的一句話,「注意空字串可被認為是有效字串。」被吃掉了-_-|||
最後提交的**執行效率也比較低,下次想想有沒有更好的實現。
大體思路:
把字串轉換成char,陣列中第一位不是(、{、[,直接返回false。
定義乙個儲存物件,我用的stringbuilder。
迴圈陣列,如果儲存物件為空,將當前放入儲存物件,進入下一次迴圈;
當前值判斷是否與儲存物件的最後一位相等,相等,繼續將當前值放入儲存物件,進入下一次迴圈;
不相等,判斷是否為儲存物件最後一位括號的閉合括號,不相等情況下判斷當前值是否為(、{、[;
是:將當前值放入儲存物件,開始下一次迴圈;
否:當前符串可以確認不是有效字串,結束迴圈,返回false。
class solution
if(alength % 2 == 1)
char c1,c2,c3;
stringbuilder temp = new stringbuilder();
for(int i = 0; i < alength; i++)
}if("".equals(temp.tostring()))else
if(c1 != c2)
if(c1 != c3 && checkstart(c2))
if(c1 != c3 && !checkstart(c2))}}
}if(temp.length() > 0)
return flag;
}public char getantonym(char c)
if(']' == c)
if('}' == c)
return returnvalue;
}public boolean checkstart(char c)
return flag;
}}
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...