题意:
给一个字符串(全是小写),求所有的A(连续相同字符的字符串)中的子串个数。
公式:
w为相同字母的个数
w=w+(1+cnt)*cnt/2;
AC代码:
1 #include<stdio.h> 2 #include<iostream> 3 #include<string.h> 4 #include<algorithm> 5 #include<queue> 6 7 using namespace std; 8 #define inf 0x3f3f3f3f 9 typedef long long ll; 10 11 char a[100020]; 12 13 int main() 14 { 15 int T; 16 cin>>T; 17 while(T--) 18 { 19 scanf("%s",a); 20 int len=strlen(a); 21 ll w=0,cnt=1; 22 for(int i=0;i<len-1;i++) 23 { 24 ll cnt=1; 25 while(a[i]==a[i+1]) 26 cnt++,i++; 27 // if(a[i]==a[i+1]) 28 // cnt++; 29 // else 30 // { 31 // cnt=1; 32 w=w+(1+cnt)*cnt/2; 33 // } 34 } 35 cout<<w<<endl; 36 37 } 38 return 0; 39 }