HackerEarth Substrings problem solution YASH PAL, 31 July 2024 In this HackerEarth Substrings problem solution You have a string S, but you like only special strings. So, you have to calculate the total number of special substrings in S. A string T, of length L, is called special string, if either of the following property holds: All characters of the string T are same. for example, aaa The string has an odd length (i.e, L is odd) and all characters of T are same except the middle character, for example, aabaa. Count the total number of special substrings in S. HackerEarth Substrings problem solution. #include<bits/stdc++.h>using namespace std;//Constants:#define N 1000005#define ll long long#define pb push_back#define mp make_pair#define fi first#define se second#define pritnf printfll le[N];ll ri[N];int main(){ ll t,i=0,j,k,x,y,z,count=0,p,flag=0,ans=0,sum=0,l,n,m,max1,min1,pos,tmp,q; //string s; t=1; while(t--) { string s; cin >> s; l=s.length(); ans=0; //condition 1 count=1; for(i=1;i<l;i++) { if(s[i]==s[i-1]) count++; else { ans+=count*(count+1)/2; count=1; } } ans+=count*(count+1)/2; //printf("%lld ",ans); //condition 2 count=1; for(i=1;i<l;i++) { if(s[i]==s[i-1]) count++; else { le[i]=count; count=1; } } count=1; for(i=l-2;i>=0;i--) { if(s[i]==s[i+1]) count++; else { ri[i]=count; count=1; } } for(i=1;i<l-1;i++) { p=min(le[i],ri[i]); if(s[i-1]==s[i+1] && s[i]!=s[i+1]) ans+=p; //printf("%lld ",ans); } printf("%lldn",ans); } return 0;} coding problems