前往
大廳
主題

LeetCode - 1704. Determine if String Halves Are Alike 解題心得

Not In My Back Yard | 2021-06-11 00:00:01 | 巴幣 0 | 人氣 255

題目連結:


題目意譯:
你被給定一個偶數長度的字串 s 。將此字串平分成長度一樣的兩個字串,且令 a 為前半部 、 b 為後半部。

兩個字串相似,如果它們有著相同數量的母音('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')。注意, s 包含著大小寫字母。

回傳真(True)如果 a 和 b 相似;反之,回傳假(False)。

限制:
2 ≦ s.length ≦ 1000
s.length 為偶數。
s 由大寫和小寫字母組成。



範例測資:
範例 1:
輸入: s = "book"
輸出: true
解釋: a = "bo" 且 b = "ok"。 a 有著 1 個母音而 b 有 1 個母音。因此,兩者相似。

範例 2:
輸入: s = "textbook"
輸出: false
解釋: a = "text" 且 b = "book"。 a 有著 1 個母音而 b 有 2 個母音。因此,兩者不相似。
注意,上面的母音 o 算作出現兩次。

範例 3:
輸入: s = "MerryChristmas"
輸出: false

範例 4:
輸入: s = "AbCdEfGh"
輸出: true


解題思維:
就是單純地將 s 從中間切為 s[0] ~ s[s.length ÷ 2 - 1] 跟 s[s.length ÷ 2] ~ s[s.length - 1] 這兩個部分。這邊的字串 s 之索引值從 0 開始。若從 1 開始算則將每對「[]」的值 + 1。

切完之後統計兩個字串各自的母音(也就是 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' 這些字元)的出現次數。如果一樣就回傳真;反之,回傳假。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作