14. 最长公共前缀 LeetCode
2018-11-02 本文已影响3人
出来遛狗了

class Solution {
func longestCommonPrefix(_ strs: [String]) -> String {
if strs.count < 1 {
return "";
}else{
var result = strs.first;
for i in 1..<strs.count{
var count = 0;
if (result?.count)! < strs[i].count{
count = (result?.count)!
}else{
count = strs[i].count
}
if count == 0{
return ""
}
for j in 0..<count{
let c = result?.charAt(index: j);
let c2 = strs[i].charAt(index: j);
if c == c2{
if j == count - 1{
result = String((result?.prefix(j + 1))!);
}
}else{
result = String((result?.prefix(j))!);
}
if result?.count == 0 {
return result!;
}
}
}
return result!;
}
}
}
extension String{
func charAt(index:Int)->Character?{
if index >= self.count || index < 0{
return nil
}
let i = self.index(self.startIndex, offsetBy:index)
return self[i]
}
}