回文字符串是指一个字符串从左到右与从右到左遍历得到的序列是相同的。也就是说不管从左读,还是从右读,都是一样的。
比如 “abcba”、“aaa” 是回文字符串,而 “abca” 不是回文字符串,但是从 “abca” 中删除一个 b 或 c 得到的新字符串 “aca” 或 “aba” 就是回文字符串。
实现思路:
- 采用首尾双向循环(双指针)方式,当遇到字符不相同的时候,分为两种情况
- 删除左侧的一个字符(相当于左指针向右移动一位),然后比较和右指针组成的子串是否为回文字符串即可;
- 删除右侧的一个字符(相当于右指针向左移动一位),然后比较和左指针组成的子串是否为回文字符串即可;
示例代码1 — while循环:
private static boolean isPalindrome(String str) {
if (str == null) {
return false;
}
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return isPalindrome(str, left +

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



