↓快轉到主要內容
  1. LeetCode/

LeetCode 3813: Vowel-Consonant Score

·1 分鐘· ·
LeetCode Easy String Simulation
Wei Yi Chung
作者
Wei Yi Chung
Working at the contributing of open source, distributed systems, and data engineering.
目錄

基本資料
#

難易度: easy 第一次嘗試:2026-01-18

  • 提交紀錄:Accepted(一次通過)

解題思路
#

字串裡還有空白和數字,只有字母要算(String 模板四)。母音數 v、子音數 c,c > 0 時分數是 v // c,否則是 0。

我的解法
#

我當時用 97 <= ord(c) <= 97 + 26 判斷字母(上界其實多了一個 {,但輸入不會出現),再用 floor(v / c)。這裡改用 isalpha 和整數除法:

class Solution:
    def vowelConsonantScore(self, s: str) -> int:
        v = sum(ch in "aeiou" for ch in s)
        c = sum(ch.isalpha() and ch not in "aeiou" for ch in s)
        return v // c if c else 0

複雜度
#

時間 O(n),空間 O(1)。

要特別避免的錯誤
#

  • 空白和數字不是子音。
  • 子音數是 0 時不能除。

面試口說整理
#

我只數字母,母音和子音分開算。子音是 0 就回傳 0,否則回傳整數除法的結果。時間 O(n)。

相關文章

LeetCode 657: Robot Return to Origin
·1 分鐘
LeetCode Easy String Simulation
LeetCode 657 解題筆記:回到原點等價於上下次數相同、左右次數相同
LeetCode 844: Backspace String Compare
·1 分鐘
LeetCode Easy Two-Pointers String Stack Simulation
LeetCode 844 解題筆記:用 stack 模擬退格;O(1) 空間的話從尾巴往前,遇到 # 就記下要跳過幾個字元
LeetCode 415: Add Strings
·1 分鐘
LeetCode Easy Math String Simulation
LeetCode 415 解題筆記:兩個指標從尾巴往前逐位相加,記錄進位,迴圈結束後還有進位要補上
LeetCode 412: Fizz Buzz
·1 分鐘
LeetCode Easy Math String Simulation
LeetCode 412 解題筆記:先判斷 15 的倍數,再判斷 5 和 3;倍數要用 %,不是 //
LeetCode 67: Add Binary
·1 分鐘
LeetCode Easy Math String Bit-Manipulation Simulation
LeetCode 67 解題筆記:從兩個字串的尾巴往前逐位相加,進位是 sum // 2,這一位是 sum % 2
LeetCode 3258: Count Substrings That Satisfy K-Constraint I
·1 分鐘
LeetCode Easy Sliding-Window String
LeetCode 3258 解題筆記:0 的個數 <= k 或 1 的個數 <= k;兩個都超過才不合法,縮左邊後以 right 結尾的合法子字串有 right - left + 1 個