Java实现 LeetCode 647 回文子串(暴力)
2023-09-14 08:58:02 时间
647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。
示例 1:
输入: “abc”
输出: 3
解释: 三个回文子串: “a”, “b”, “c”.
示例 2:
输入: “aaa”
输出: 6
说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.
注意:
输入的字符串长度不会超过1000。
class Solution {
public int countSubstrings(String s) {
char[] arr = s.toCharArray();
int sum = 0;
for (int c = 0; c < arr.length; c++) {
sum += expend(arr, c, c) + expend(arr, c, c + 1);
}
return sum;
}
private int expend(char[] arr, int l, int r) {
int cnt = 0;
while (l >= 0 && r < arr.length && arr[l] == arr[r]) {
l--;
r++;
cnt++;
}
return cnt;
}
}
相关文章
- Java实现 LeetCode 837 新21点(DP)
- Java实现 LeetCode 812 最大三角形面积 (暴力)
- Java实现 LeetCode 803 打砖块 (DFS)
- Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)
- Java实现 LeetCode 725 分隔链表(暴力)
- Java实现 LeetCode 696 计数二进制子串(暴力)
- Java实现 LeetCode 693 交替位二进制数(位运算)
- Java实现 LeetCode 561 数组拆分 I(通过排序算法改写PS:难搞)
- Java实现 LeetCode 530 二叉搜索树的最小绝对差(遍历树)
- Java实现 LeetCode 491递增子序列
- Java实现 LeetCode 396 旋转函数
- Java实现 LeetCode 315 计算右侧小于当前元素的个数
- Java实现 LeetCode 240 搜索二维矩阵 II(二)
- Java实现 LeetCode 238 除自身以外数组的乘积
- Java实现 LeetCode 213 打家劫舍 II(二)
- Java实现 LeetCode 172 阶乘后的零
- Java实现 LeetCode 169 多数元素
- Java实现 LeetCode 150 逆波兰表达式求值
- Java实现 LeetCode 149 直线上最多的点数
- Java实现 LeetCode 131 分割回文串
- Java实现 LeetCode 117 填充每个节点的下一个右侧节点指针 II(二)
- Java实现 LeetCode 76 最小覆盖子串
- Java实现 LeetCode 24 两两交换链表中的节点
- Java实现 LeetCode 24 两两交换链表中的节点
- Java实现LeetCode_0027_RemoveElement
- 【JAVA】java中的length和length()