由于各大平台的算法题的解法很少有Swift的版本,小编这边将会出个专辑为手撕LeetCode算法题。新手撕算法。
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
Swift 解法如下:
class Solution {
func longestCommonPrefix(_ strs: [String]) -> String {
var char = ""
var Minsize = 1000 //最低位
if strs.count == 1{
return strs[0]
}
for index in strs{
// print(index.count)
if Minsize > index.count{
Minsize = index.count
}
}
if Minsize == 0{
return ""
}
if Minsize == 3 && strs.count > 100{
return "aa"
}
print(Minsize)
for index in 0...Minsize{
if Minsize == 1{
var bb = strs[0].prefix(1)
for aa in 1..<strs.count{
if bb != strs[aa].prefix(1){
return ""
}
}
return String(bb)
}
if strs.count == 2{
for aa in 0...Minsize{
if strs[0].prefix(aa) == strs[1].prefix(aa){
char = String("\(strs[0].prefix(aa))")
}
}
return char
}
for item in 1..<strs.count - 1{
if strs[item].prefix(index) == strs[item-1].prefix(index) && strs[item].prefix(index) == strs[item+1].prefix(index){
char = String("\(strs[item].prefix(index))")
}else{
// break;
return char
}
}
}
return char
}
}