647. 回文子串
647. Palindromic Substrings
タイトル説明
文字列を考えると、あなたの仕事はどのように多くの文字列回文サブストリングを計算することです。
ストリングは、同じ文字を異なる文字列としてカウントされさえすることによって、異なる開始位置または終了位置を有します。
LeetCode 647回文サブストリング中等
例1:
入力:
"ABC"
出力: 3
説明: 3回文サブストリング: "A"、 "B" 、 "C"。
出力: 3
説明: 3回文サブストリング: "A"、 "B" 、 "C"。
例2:
入力:
"AAA"
出力: 6
概要: 6回文構造部分文字列: "A"、 "A" 、 "A"、 "AA"、 "AA"、 "AAA"。
出力: 6
概要: 6回文構造部分文字列: "A"、 "A" 、 "A"、 "AA"、 "AA"、 "AAA"。
注意:
- 入力文字列の長さが1000以上ではありません。
Java実装
class Solution {
public int countSubstrings(String s) {
int count = 0;
for (int i = 0; i < s.length(); i++) {
count += extractPalindrome(s, i, i);
count += extractPalindrome(s, i, i + 1);
}
return count;
}
public int extractPalindrome(String s, int left, int right) {
int count = 0;
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
count++;
left--;
right++;
}
return count;
}
}
類似のトピック
参考資料