[HackerRank]樣本語法檢查器(Pattern Syntax Checker)


題目描述

使用正規表示式,我們可以輕易地搜尋在文本中符合的樣本。在搜尋樣本之前,我們必須先用嚴謹的語法將樣本定義好。

在這個問題中,您會得到一個樣本,您必須判斷這個樣本的語法是否是有效的。只有當Pattern.compile方法可以成功編譯出樣本時,表示這個正規表示式語法是有效的。

原題網址

https://www.hackerrank.com/challenges/pattern-syntax-checker

輸入格式

第一行包含一個整數N,為測試資料的數量。接下來的N行,每行包含一個由任意可印出的字元組成的字串,為樣本的正規表示式。

輸出格式

替每個測試資料做檢查,如果語法是對的,輸出「Valid」,否則輸出「Invalid」。

範例輸入

3
([A-Z])(.+)
[AZ[a-z](a-z)
batcatpat(nat

範例輸出

Valid
Invalid
Invalid

解題概念

若樣本的正規表示式語法不是有效的,那麼當它在使用Pattern.compile方法編譯的時候,會拋出PatternSyntaxException例外,因此可以利用try-catch結構,來直接使用Pattern.compile方法編譯正規表示式語法,測試其是否是有效的語法。

參考答案

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章