題目:
分析:題目要求求出所有的迴文字符串的個數,思考迴文字符串的特點,有一箇中心,並且兩邊字符相等,還有一個特點,迴文字符串的長度可能是奇數也可能是偶數
假設每個字符都是一個迴文字符串的中心,向兩邊擴展看有多少個迴文字符串
代碼:
class Solution {
int count = 0;
public int countSubstrings(String s) {
if(s.length() == 0){
return 0;
}
for(int i = 0; i < s.length(); i++){
//長度是奇數,因start=end
isReverse(s, i, i);
//長度是偶數,因end=start+1
isReverse(s, i, i+1);
}
return count;
}
void isReverse(String str, int start, int end){
while(start>=0 && end < str.length() && str.charAt(start) == str.charAt(end)){
start--;
end++;
count++;
}
}
}