iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
自我挑戰組

從零開始學習LeetCode系列 第 29

Day29 First Unique Character in a String

  • 分享至 

  • xImage
  •  

題目:給定一個字串 s,找出其中第一個只出現一次的字元,並回傳它的索引
如果沒有符合的字元,回傳 -1
https://ithelp.ithome.com.tw/upload/images/20251013/20169339BAoS5wqToi.jpg


解法一
https://ithelp.ithome.com.tw/upload/images/20251013/20169339aoUka00k5E.jpg

  • 用兩次掃描,一次統計,一次比對
  • 雙迴圈

註解

  • count = {} → 建立空字典,用來記錄每個字母出現幾次
  • for ch in s: → 逐一讀取字串裡的每個字母
  • count.get(ch, 0) → 取得目前字母的次數,若沒出現過就從 0 開始
  • count[ch] = count.get(ch, 0) + 1 → 每出現一次就加 1
  • for i in range(len(s)): → 依照順序檢查每個字母的位置
  • if count[s[i]] == 1: → 找出第一個只出現一次的字母
  • return i → 回傳該字母在字串中的索引位置
  • return -1 → 如果沒有任何字母只出現一次,就回傳 -1
  • 雙迴圈策略 → 第一次數字母次數、第二次找第一個只出現一次的字母

理解

  • 數每個字母出現幾次
  • 找出第一個只出現一次的
  • 如果都沒有 → 回傳 -1

上一篇
Day 28 Valid Palindrome
下一篇
Day30 總結
系列文
從零開始學習LeetCode30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言