iT邦幫忙

2024 iThome 鐵人賽

DAY 1
1
Python

30天挑戰 LeetCode 75系列 第 1

[Day 01] Merge Strings Alternately

  • 分享至 

  • xImage
  •  

LeetCode 75 介紹

哈囉大家好,我是Justin Chang,這次要來挑戰用Python寫LeetCode 75的題目。使用Python的原因是我對於Python比較熟悉,寫的速度會比較快一點。不過有時候我可能會補充C/C++/C#的寫法,偶爾無聊也會練一下這幾種語言。
LeetCode 75主要是LeetCode整理出75題Coding Interview比較常考的題目,包含了以下幾個主題:

  1. Array/String
  2. Two Pointers
  3. Sliding Window
  4. Prefix Sum
  5. Hash Map / Set
  6. Stack
  7. Queue
  8. Linked List
  9. Binary Tree - BFS
  10. Binary Search Tree
  11. Graphs - BFS
  12. Heap / Priority Queue
  13. Binary Search
  14. Backtracking
  15. DP - 1D
  16. DP - Multidimensional
  17. Bit Manipulation
  18. Trie
  19. Intervals
  20. Monotonic Stack

Merge Strings Alternately

那麼第一篇我就選擇了LeetCode 75的第一個主題Array/String的第一個題目Merge Strings Alternately

題目敘述

給定兩個字串word1word2,把兩個字串交叉混合,從word1開始。如果一個字串比較長的話,就把剩餘的字串加到最後合成的字串後面。最後回傳已合成的字串。

解題思路

  • 創建一個整數指標idx,代表目前的位置。
  • 如果idxword1或是word2長度小的話,就代表還未完成合成字串,還要繼續合成。
  • 每一個while迴圈裡先加入word1的第idx個字元到ans,再加入word2的第idx個字元,但是在加入前都要先確認說是否該字串還有字元能加,所以要先判斷字串長度有沒有大於idx

程式碼

class Solution:
    def mergeAlternately(self, word1: str, word2: str) -> str:
        ans = ""
        idx = 0
        while idx < len(word1) or idx < len(word2):
            if idx < len(word1):
                ans += word1[idx]
            if idx < len(word2):
                ans += word2[idx]
            idx += 1
        return ans

結語

好了,今天的分享就到這邊結束,如果之後有想要我講什麼題目的話,可以在下方留言喔! 因為LeetCode 75總共有75題,但是這個鐵人挑戰只有30天而已,所以會有一半的題目沒講到。希望今日的分享對於再練習LeetCode 75的朋友有一點點的幫助。


下一篇
[Day 02] LeetCode 75 - Greatest Common Divisor of Strings
系列文
30天挑戰 LeetCode 755
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言