題型解說
這是一題難度為簡單的題目
需要設計一個方法,此方法會傳入一個字串陣列 strs
回傳陣列中所有字串的共同前綴
範例:
strs = ["flower","flow","flight"],則回傳 "fl"
strs = ["dog","racecar","car"],則回傳 "",找不到共同前綴
解題思路
這題就簡單的使用暴力法,以第一個字串當基準比對每一個 char
如果遇到不對的就直接回傳結果,可以用雙 for迴圈 也可以使用 while迴圈,隨個人喜好
程式碼
Java
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0 || strs[0].length() == 0) {
return "";
}
if (strs.length == 1) {
return strs[0];
}
int i = 0; // 當前的 char 索引
StringBuilder sb = new StringBuilder();
while (true) {
char target = strs[0].charAt(i);
for (int j = 1, len = strs.length; j < len; j++) {
if (i == strs[j].length()) { // 如果索引已經超過該字串的長度就回傳當前結果
return sb.toString();
}
if (strs[j].charAt(i) != target) { // 如果比對失敗就回傳當前結果
return sb.toString();
}
}
sb.append(target);
i++;
if (i == strs[0].length()) { // 基準字串已跑完就回傳當前結果
return sb.toString();
}
}
}
}