14. 最長公共字首
阿新 • • 發佈:2018-12-11
/* 思路: 最長公共字首的意思就是從第一個字母開始的每個字串相同的字首 1、首先找到最短的那個字串的長度和最短的那個字串的下標 2、用兩個迴圈 第一個迴圈,遍歷每個字串的第i個字母 第二個迴圈,遍歷每個字串 3、判斷每個字串的第i個字元是否相等,如果發現第一個字母中有不想等的,直接返回“”; 如果發現第一個字元後面有不相等的,返回前面相同字首;如果發現全都相等,則返回最短的那個字串。 */ class Solution { public String longestCommonPrefix(String[] strs) { int n = strs.length; int shortest = 0;//記錄最短字串的下標 if(n == 0) return ""; if(n == 1) return strs[0]; int temp = strs[0].length();//記錄最短字串的長度 for(int i = 1; i < n; i++){ if(temp > strs[i].length()){ temp = strs[i].length(); shortest = i; } } for(int i = 0; i < temp; i++){ for(int j = 0; j < n-1; j++){ if(strs[j].charAt(i) == strs[j+1].charAt(i)) continue; else{ //如果遇到不相等的情況 if(i == 0) return ""; else{ return strs[0].substring(0,i); } } } } //迴圈結束,如果還沒有返回值,說明全部相等,返回最短的那個陣列 return strs[shortest]; } }