後來我才知道,還有更短的解法,終究是錯付了。
時代在進步,程式語言在簡化。
class Solution {
fun numJewelsInStones(jewels: String, stones: String): Int {
return stones.count { it in jewels }
}
}
這次的線索是58. Length of Last Word,找結尾單詞的長度。
學妹很快的根據題目說明,把解法打出,將前後空白拿掉,顛倒字串順序,然後取得第一個空白位置。
但她通過基本測試準備送出去的時候被我擋住了。
class Solution {
fun lengthOfLastWord(s: String): Int {
return s.trim().reversed().indexOf(" ")
}
}
「我覺得這個解法有漏洞。」
「可是執行Run Code
沒有問題呀。」
「Run Code
只有跑基本測試,更精準地說,跑的是第一個範例,妳可以點擊Testcase
看看。」
「這樣會有什麼問題嗎?」學妹歪頭看我。
我指了指Testcase
的方框:「有時候有些極端的例子需要我們手動加入,直接在原本的範例下一行加入再執行Run Code
就可以了。」
「啊,出錯了,我忘了考慮只有一個單詞的情況了。」學妹說著很快就修改了寫法。
class Solution {
fun lengthOfLastWord(s: String): Int {
return s.trim().reversed().plus(" ").indexOf(" ")
}
}
「還有其他特殊情況嗎?」這次學妹謹慎起來,通過測試也沒有馬上送出。
我想了想:「應該沒有了。送出吧。」
學妹緊張地按下送出鍵。