647. Palindromic Substrings
647. Palindromic Substrings “aaaaa” 5+ 4 + 3 + 2 + 1 Boolean a a a a a a T T a T T a T T a T T a T 先比较头尾, 然后看中间部分是不是一个已经知道的Palindronmic substring. class Solution { //General Strategy //T/F DP - Count afterwards public int countSubstrings(String s) { boolean[][] dp = new boolean[s.length()][s.length()]; //fill in base case. for (int i = 0; i < s.length(); i++) { dp[i][i] = true; if (i > 0 && s.charAt(i) == s.charAt(i - 1)) { dp[i - 1][i] = true; } } //DP logic. for (int len = 2; len < s.length(); len++) { for (int i = 0; len + i < s.length(); i++) { int j = i + len; dp[i][j] = s.charAt(j) == s.charAt(i) && dp[i + 1][j - 1]; } } //let's count. int num = 0; for (int len = 0; len < s.length(); len++) { for (int i = 0; len + i < s.length(); i++) { int j = i + len; if (dp[i][j]){ num++; } } } return num; } }
Given a string, your task is to count how many palindromic substrings in this string.
The substrings with different start indexes or end indexes are counted as different substrings even they consist of same characters.
Example 1:
Input: "abc" Output: 3 Explanation: Three palindromic strings: "a", "b", "c".
Example 2:
Input: "aaa" Output: 6 Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".
posted on 2018-08-10 15:32 猪猪🐷 阅读(92) 评论(0) 收藏 举报
浙公网安备 33010602011771号