最長公共字首
題目要求:
編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
示例 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為空,直接返回 然後...