Leetcode——驗證迴文字串
阿新 • • 發佈:2019-01-10
題目描述:
給定一個非空字串 s
,最多刪除一個字元。判斷是否能成為迴文字串。
解題思路:
- 使用雙指標,一個指向頭,一個指向尾,如果兩者不相同了,則可以將尾部的往前挪一個,或者首部的往後挪一個,判斷這兩種情況
這兩種已經相當於刪除了一個字元,如果不是迴文字串,說明刪除一個字元滿足不了要求
class Solution { public boolean validPalindrome(String s) { int i = -1; int j = s.length(); while(++i<--j){ if(s.charAt(i)!=s.charAt(j)) return isPalindrome(s,i+1,j)||isPalindrome(s,i,j-1); } return true; } public boolean isPalindrome(String s,int i,int j){ while(i<j){ if(s.charAt(i++)!=s.charAt(j--)) return false; } return true; } }