LeetCode - Longest Common Prefix
今天我們要講解的是 [Longest Common Prefix],這在 LeetCode 算是比較簡單的題目,讓我們一起開始吧!
進來之前請先注意,我的方式不一定完全正確,只是依照我自己的理念進行撰寫,所以如果程式上有什麼更好的解法,歡迎提出見解。
這次題目
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example
1 | Input: strs = ["flower","flow","flight"] |
1 | Input: strs = ["dog","racecar","car"] |
Constraints:
- 1 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] consists of only lowercase English letters.
自已解法
這個題目我原本以為是抓最多次出現的前綴詞,後來嘗試後才理解,原來是取得最長的前綴詞字串,首先我們先定義前綴詞為第一個值。
1 | /** |
我們透過陣列來列出每一個值去做比較,接著透過while
的方式去判斷目前的前綴詞,透過indexOf
來確認目前是否有吻合前綴詞,如果沒有吻合,那我們從最後面開始減少,假設初始prefix='flower'
,那接下來prefix=flowe
,接著繼續判斷,除此之外為了以防扣除到後面prefix為空導致無限迴圈,我們需要做個小例外。
1 | /** |
實作結果
如此一來他會一直往下去尋找直至有吻合的前綴詞。