Given a string s, return the number of palindromic substrings in it.
A string is a palindrome when it reads the same backward as forward.
A substring is a contiguous sequence of characters within the string.
Example 1:
Input: s = “abc” Output: 3 Explanation: Three palindromic strings: “a”, “b”, “c”. Example 2:
Input: s = “aaa” Output: 6 Explanation: Six palindromic strings: “a”, “a”, “a”, “aa”, “aa”, “aaa”.
class Solution {
public int countSubstrings(String s) {
if(s.length()==0) return 0;
int n = s.length();
int res = 0;
char[] c = s.toCharArray();
for(int i =0; i<n; i++){
res +=isPalindromic(i,i,c);
res +=isPalindromic(i,i+1,c);
}
return res;
}
public int isPalindromic(int s, int e, char[]c){
int count =0;
while(s>=0 && e < c.length && c[s--]==c[e++]){
count++;
}
return count;
}
}
Time: O() Space: O()