LeetCode : 題目描述:
編寫一個函數來查找字元串數組中的最長公共字首。
如果不存在公共字首,傳回空字元串 ""。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
說明:
所有輸入隻包含小寫字母 a-z 。
我的答案,這次沒看 題解,竟然寫出來了,開心。
class Solution {
public String longestCommonPrefix(String[] strs) {
StringBuilder sb = new StringBuilder();
int len = strs.length;
if(len == 0){
return "";
}
int minLen = strs[0].length();
boolean flag_1 = true;
char c = 'a';
for(int i = 0; i < len; i++){
minLen = strs[i].length() < minLen? strs[i].length() : minLen;
}
for(int i = 0; i < minLen; i++){
for(int j = 0; j < len-1; j++){
if(strs[j].charAt(i) != strs[j+1].charAt(i)){
flag_1 = false;
break;
}
c = strs[j].charAt(i);
}
if(flag_1){
sb.append(c);
}
}
if(sb.length() == 0){
return "";
}else{
return sb.toString();
}
}
}
其中,需要注意的是,第一次用 int minLen = strs[0].length(); 寫了 Integer.MAX_VALUE,當時寫的時候就有點擔心,沒想到送出直接 溢出了。後來寫 int minLen = strs[0].length(); 送出發現 測試有個 “” 空參數,直接報了 越位。 最後加了個空數組判斷,終于過了。 以後改動代碼,一定要小心謹慎、
另外,使用了 flag 開關,我覺得寫得很爛,但是暫時這樣了,以後變成大神了再來刷。
評級:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2csgXSU90dwcVTo5kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3UTMyUTNykTM4EDNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
未完待續。。。
0.0.1