您好,登錄后才能下訂單哦!
這篇文章主要介紹leetcode中如何解決最長公共前綴問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
https://leetcode-cn.com/problems/longest-common-prefix/
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 ""。
示例 1:
輸入: ["flower","flow","flight"]輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]輸出: ""解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z
。
標簽:字符串
當字符串數組長度為0時則公共前綴為空,直接返回
令最長公共前綴ans的值為第一個字符串,進行初始化
遍歷后面的字符串,依次將其與ans進行比較,兩兩找出公共前綴,最終結果即為最長公共前綴
如果查找過程中出現了ans為空的情況,則公共前綴不存在直接返回
時間復雜度:O(s),s為所有字符串的長度之和
Java版本
class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length == 0) return ""; String ans = strs[0]; for(int i =1;i<strs.length;i++) { int j=0; for(;j<ans.length() && j < strs[i].length();j++) { if(ans.charAt(j) != strs[i].charAt(j)) break; } ans = ans.substring(0, j); if(ans.equals("")) return ans; } return ans; }}
JavaScript版本
/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function(strs) { if(strs.length == 0) return ""; let ans = strs[0]; for(let i =1;i<strs.length;i++) { let j=0; for(;j<ans.length && j < strs[i].length;j++) { if(ans[j] != strs[i][j]) break; } ans = ans.substr(0, j); if(ans === "") return ans; } return ans;};
以上是“leetcode中如何解決最長公共前綴問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。