1、原题
Input: "abca"
Output: True
Explanation: You could delete the character 'c'.
题目描述:可以删除一个字符,判断是否能构成回文字符串。
2、思路
使用双指针方法,
3、代码
class Solution {
func validPalindrome(_ s: String) -> Bool {
// 字符串转数组
let strArr = Array(s)
// 双指针
var i = 0
var j = strArr.count - 1
while i < j {
if strArr[i] != strArr[j] {
return isPalindrome(strArr, i:i + 1, j:j) || isPalindrome(strArr, i:i, j:j - 1)
}
i += 1
j -= 1
}
return true
}
func isPalindrome(_ strArr: [String.Element], i: Int, j: Int) -> Bool {
// 让i和j可以修改
var i = i
var j = j
while i < j {
if strArr[i] != strArr[j] {
return false
}
i += 1
j -= 1
}
return true
}
}
网友评论