LeetCode14 最长公共前缀
生活随笔
收集整理的這篇文章主要介紹了
LeetCode14 最长公共前缀
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
leetcode 14 最長公共前綴
編寫一個(gè)函數(shù)來查找字符串?dāng)?shù)組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 “”。
示例 1:
輸入:strs = [“flower”,“flow”,“flight”]
輸出:“fl”
示例 2:
輸入:strs = [“dog”,“racecar”,“car”]
輸出:""
解釋:輸入不存在公共前綴。
文章目錄
- leetcode 14 最長公共前綴
- 一、方法一,兩兩單詞比較(橫向比較)
- 二、方法二,每個(gè)字符進(jìn)行比較(縱向比較)
一、方法一,兩兩單詞比較(橫向比較)
方法一:可以兩兩單詞進(jìn)行比較,找出兩兩單詞的公共前綴,再拿得出的公共前綴和第三個(gè)單詞進(jìn)行比較,在得出公共前綴。
//兩兩單詞進(jìn)行比較 public String longestCommonPrefix(String[] strs) {//設(shè)置第一個(gè)單詞為默認(rèn)公共前綴String commonPrefix=strs[0];//從第二個(gè)單詞開始比較for(int i=1;i<strs.length;i++){//獲取當(dāng)前單詞String next=strs[i];int j=0;for(;j<commonPrefix.length()&& j<next.length();j++){if(commonPrefix.charAt(j)!=next.charAt(j)){break;}}commonPrefix=commonPrefix.substring(0,j);} return commonPrefix; }二、方法二,每個(gè)字符進(jìn)行比較(縱向比較)
方法二:可以拿出第一個(gè)單詞中的第一個(gè)字符和其余字符串中的第一個(gè)字符進(jìn)行比較,如果相同,拿出第下一個(gè)字符和其余字符串的第二個(gè)字符進(jìn)行比較,以此類推。如果不同,則返回之前掃描過的字符組成的字符串。
public String longestCommonPrefix(String[] strs){//遍歷第一個(gè)單詞中的每個(gè)字符for(int i=0;i<strs[0].length();i++){//得到當(dāng)前字符char cur=strs[0].charAt(i);//從第二個(gè)單詞開始遍歷for(int j=1;j<strs.length;j++){//獲取當(dāng)前單詞String next=strs[j];if(i<next.length() && next.charAt(i)==cur){//如果字符相同,則繼續(xù)循環(huán)continue;}else{//當(dāng)前字符不同,則直接返回strs[0]的[0,i)中的字符,//因?yàn)閇0,i-1]的字符之前已經(jīng)掃描過,確保是公共前綴。return strs[0].substring(0,i);}}}//說明第一個(gè)單詞為公共前綴,或者字符串?dāng)?shù)組里的字符串都是相同的。return strs[0];} 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的LeetCode14 最长公共前缀的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树结构之树和二叉树的概念以及如何用面向对
- 下一篇: 1、计算机网络之计算机之间的连接方式