编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例:输入["flower","flow","flight"]
输出"fl"
说明:
所有输入只包含小写字母 a-z
。
我们采用暴力破解法
代码如下:
class Solution{
func longestCommonPrefix(_ strs: [String]) -> String {
var temp:String = ""
if strs.count==0 || String(strs[0])==""{
return ""
}
temp = strs[0]
for i in 1..<strs.count{
if strs[i].count==0{
return ""
}else if strs[i].count<temp.count{
var flag:Bool = false
for j in 0..<strs[i].count{
let curr:String = strs[i]
if curr[j] != temp[j]{
let index = curr.index(curr.startIndex,offsetBy:j)
temp = curr.substring(to:index)
flag = true
break
}
}
}else{
for j in 0..<temp.count{
let curr:String = strs[i]
if temp[j] != curr[j]{
let index = curr.index(curr.startIndex, offsetBy:j)
temp = curr.substring(to:index)
break
}
}
}
}
return temp
}
}
//针对字符串的扩展
extension String {
subscript(i: Int) -> Character {
return self[index(startIndex, offsetBy: i)]
}
}