// 1759. Count Number of Homogenous Substrings
class Solution {
public int countHomogenous(String s) {
final long MOD = 1000000007L;
char[] charArray = s.toCharArray();
long cnt = 1;
long ans = 0;
for (int i = 1; i < charArray.length; ++i) {
if (charArray[i] == charArray[i - 1]) {
++cnt;
} else {
ans += (1 + cnt) * cnt / 2;
cnt = 1;
}
}
ans += (1 + cnt) * cnt / 2;
return (int) (ans % MOD);
}
}
学习笔记: 这道题其实不复杂,考察的就是连续几个相同字母的组合。 用到了小学的等差数列求和公式,首相加末项的和乘以项数除以2。