LeetCode1003 檢查替換後的詞是否有效

2021-09-23 15:33:41 字數 1872 閱讀 8627

給定有效字串"abc"

對於任何有效的字串v,我們可以將v分成兩個部分xy,使得x + yxy連線)等於v。(xy可以為空。)那麼,x + "abc" + y也同樣是有效的。

例如,如果s = "abc",則有效字串的示例是:"abc""aabcbc""abcabc""abcabcababcc"無效字串的示例是:"abccba""ab""cababc""bac"

如果給定字串s有效,則返回true;否則,返回false

示例 1:

輸入:"aabcbc"輸出:true解釋:從有效字串 "abc" 開始。

然後我們可以在 "a" 和 "bc" 之間插入另乙個 "abc",產生 "a" + "abc" + "bc",即 "aabcbc"。

示例 2:

輸入:"abcabcababcc"輸出:true解釋:"abcabcabc" 是有效的,它可以視作在原串後連續插入 "abc"。

然後我們可以在最後乙個字母之前插入 "abc",產生 "abcabcab" + "abc" + "c",即 "abcabcababcc"。

示例 3:

輸入:"abccba"輸出:false
示例 4:

輸入:"cababc"輸出:false

1 <= s.length <= 20000s[i]'a''b'、或'c'

解析:

因為最近兩天一直在做關於棧的題目,所以拿到題目首先想到的是用棧實現。但是如果在面試中,可能就不會想到,還是自己掌握的不夠熟練。這個題目感覺和消消樂差不多,如果有連著的abc,則消除。上邊的資料自動往下落,然後繼續刪除,如果存在異常的情況,如bac,cba這種的,就說明不能完全消除,則返回false。如果字串的長度小於3,也返回false。

**:

bool isvalid(string s) 

}else

}} if (cstack.empty())

return true;

return false;

}

更優的方法是用vector模擬棧,因為可以訪問前邊的元素。

他山之石:

bool isvalid(string s) 

else

}return stack.size() == 0;

}

Leetcode 1003 檢查替換後的詞是否有效

給定有效字串 abc 對於任何有效的字串v,我們可以將v分成兩個部分x和y,使得x y x和y連線 等於v。x或y可以為空 那麼,x abc y也同樣是有效的。例如,如果s abc 則有效字串的示例是 abc aabcbc abcabc abcabcababcc 無效字串示例是 abccba ab ...

LeetCode 1003 檢查替換後的詞是否有效

給定有效字串 abc 對於任何有效的字串 v,我們可以將 v 分成兩個部分 x 和 y,使得 x y x 與 y 連線 等於 v。x 或 y 可以為空。那麼,x abc y 也同樣是有效的。例如,如果 s abc 則有效字串的示例是 abc aabcbc abcabc abcabcababcc 無效...

LeetCode1003 檢查替換後的詞是否有效

一.題目 題目 示例 二.方法一 棧 解題思路 將列表中的元素依次進棧 如果棧頂的3個元素一次是 c b a 則彈出這3個元素 當遍歷完後,棧為空,則返回true 否則,返回false 解題 def isvalid self,s str bool stack for ele in s iflen s...