This Article is for self practice
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".
Constraints:
1 <= s.length <= 1000sconsists of lowercase English letters.
package practice;
public class PalindromicString {
public static void main(String[] args) {
/*
Input: s = "aaa"
Output: 6
Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".
* */
PalindromicString ps = new PalindromicString();
String s = "aaa";
System.out.println(ps.countSubstrings(s));
}
public int countSubstrings(String s) {
int ans = 0;
for (int i = 0; i < s.length(); i++) {
//odd digit palindrome
ans = ans + findPalindrome(s, i, i);
//even digit palindtrome
ans = ans + findPalindrome(s, i, i + 1);
}
return ans;
}
int findPalindrome(String s, int l, int h) {
int ans = 0;
while (l >= 0 && h < s.length()) {
if (s.charAt(l) != s.charAt(h)) {
break;
}
l--;
h++;
ans++;
}
return ans;
}
}
No comments:
Post a Comment