014最長公共子串
阿新 • • 發佈:2020-09-01
一、java程式碼
/* * @lc app=leetcode.cn id=14 lang=java * * [14] 最長公共字首 */ // @lc code=start class Solution { public String longestCommonPrefix(String[] strs) { //字串陣列長度為0則公共字首為空,直接返回 if(strs.length==0) return ""; //初始化最長公共字首ans的值為第一個字串長度 String ans=strs[0]; //遍歷後面的字串,依次將其與ans進行比較,兩兩找出公共字首 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); //如果查詢過程中出現了ans為空,則公共字首不存在,直接返回 if(ans.equals("")) return ans; } return ans; } } // @lc code=end
二、解題思路
1、當字串陣列長度為0時則公共字首為空,直接返回;
2、令最長公共字首ans的值為第一個字串,進行初始化
3、遍歷後面的字串,依次將其與ans進行比較,兩兩找出公共字首,最終結果即為最長公共字首
4、如果查詢過程中出現了ans為空的情況,則公共字首不存在,直接返回
三、簡單圖解過程
(1/4)
(2/4)
(3/4)
(4/4)