题目 给你一个字符串 S,返回只含 单一字母 的子串个数。
class Solution
{
public int countLetters(String S)
{
int nums =0;
int len =S.length();
for(int i=0;i<len-1;i++)
{
nums++;
char x = S.charAt(i);
for(int j=i+1;j<len;j++)
{
if(S.charAt(j)==x)
nums++;
else
break;
}
}
nums++;
return nums;
}
}
对于字符串的每一个位置,该位置的字母出现了一次,对于该位置向后遍历,每有一个相同的字母,就多出一个只含单一字母的子串,那么我们考虑标溢出的问题,对初始位置的遍历只到S.length()-2的位置,即倒数第二个字母,那么循环结束后,个数应当加1,即求出了字符串中子串的个数。