題目地址:
https://leetcode.com/problems/valid-palindrome-ii/
給定一個字符串,問其能否刪去或個字符變爲迴文串。
直接判斷是否迴文,如果某一對字符不等了,就嘗試刪去其中一個繼續判斷。代碼如下:
public class Solution {
public boolean validPalindrome(String s) {
for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
if (s.charAt(i) != s.charAt(j)) {
return check(s, i + 1, j) || check(s, i, j - 1);
}
}
return true;
}
private boolean check(String s, int begin, int end) {
for (int i = begin, j = end; i < j; i++, j--) {
if (s.charAt(i) != s.charAt(j)) {
return false;
}
}
return true;
}
}
時間複雜度。