LeetCode初級題 最長公共字首

2021-09-11 19:08:58 字數 1324 閱讀 2241

最長公共字首

題目要求:

編寫乙個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串 「」。

示例 1:

輸入: [「flower」,「flow」,「flight」]

輸出: "fl"

示例 2:

輸入: [「dog」,「racecar」,「car」]

輸出: ""

解釋: 輸入不存在公共字首。

說明:所有輸入只包含小寫字母 a-z 。

題目分析:

目的是查詢最長字首是什麼?那麼解決辦法就是使用乙個字元記錄字串第一位的字元,之後通過遍歷陣列來得到每乙個陣列第一位的字元,和記錄的字元相比較,相同則加到等待傳出的字串。之後的位數依此類推。

我的解決**:

class mysolution 

}if(iscommon == true) else

} catch(stringindexoutofbound***ception ex) catch(arrayindexoutofbound***ception ex)

} return string;

}}

這裡面出現了兩個異常,分別捕捉,在遍歷陣列的時候,可能出現陣列下標越界。

第二個就是在執行strs[j].charat(i) != pop**的時候,可能字串下標越界stringindexoutofbound***ception

但是我的**是有很大問題的,當catch之後最好不要什麼都不做,最好進行一些合理的處理。ps:執行時間12ms

leetcode官方解決辦法

(1)水平掃瞄法

下面**當中有乙個方法是strs[i].indexof(prefix) != 0這個的方法返回的是字串prefix首次出現的索引,當返回的值不是0的話,說明字串子串沒出現過,需要變短字串。當都不符合條件的時候,字串為空,那麼返回空的字串。

public string longestprefix(string  strs) 

} return prefix;

}

還有其他的解決辦法,比如說:橫向掃瞄,縱向掃瞄(好像剛才就是哈)但是暫時沒看懂,等著我更新吧…

不對的依然要幫我指出來哈。

演算法題 最長公共字首 LeetCode

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 方法一 橫向掃瞄法 前兩個字串找公共子串...

Leetcode刷題 最長公共字首

最近嘗試下大家口口相傳的神器 leetcode cn.com,大家自己註冊就可以選擇題庫進行使用了。我都會先自己出乙個答案,然後再學習別人的標準答案,進行自我提公升。我直接把相關注釋再 體現出來 public static void main string args system.out.print...

LeetCode第14題 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 首先考慮vector為空,直接返回 然後...