3 回答

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
在您的第二次嘗試中,您解決了代碼中唯一的問題。
如果有匹配的字符包圍,您的第一次嘗試將通過返回立即終止true
*
。(在這里你會錯過即將到來*
的字符不匹配的 s)
您的第二種情況現(xiàn)在將檢查您的字符串是否包含一個(gè)*
被不匹配的字符包圍的字符串,并通過返回 false 來終止它。
注意:這是一個(gè)示例,您可以調(diào)整檢查以檢測負(fù)面情況,而不是遍歷所有情況并找到正面情況。
在您的情況下,您可以做兩件事(注意:我們可以安全地移除角落兩個(gè),而您已經(jīng)這樣做了),
如果返回true
:字符串中的每個(gè)*
都被匹配的字符包圍
或者
如果返回false
:至少有一個(gè)*
被不匹配的字符包圍。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
在您的第一種情況下,一旦找到一個(gè)錯誤的有效匹配/出現(xiàn),您就會返回。此外,您不會檢查*
一端或兩端的情況。
在第二種情況下,您正在顯式搜索不匹配。此外,*
末端的極端情況自然會成為匹配/成功。

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的第一次嘗試有兩個(gè)問題:
它沒有考慮完全不包含任何星號的字符串的情況,循環(huán)將運(yùn)行到完成,然后
false
將錯誤地返回。它錯誤地返回
true
星號的第一對匹配的鄰居,而不管后面可能有任何不匹配的對。
添加回答
舉報(bào)