呵呵
一层for循环暴力即可
策略在于仅当后两个字母和之前字母不同时才按下CapsLock
例如(AbbAAA) ( aBBcccc)
其他情况(AAAbCCC cccDkkk)按下shift
DP也可
#include<cstdio>
#include <cctype>
#include <cstring>
using namespace std;
int main()
{
int T;
char str[105];
scanf("%d%*c",&T);
while(T--){
gets(str);
bool mark=false;
int len=strlen(str);
int ans=len;
for(int i=0;i<len;i++){
if(isupper(str[i])!=mark){
if(isupper(str[i+1])!=mark)
mark=!mark;
ans++;
}
}
if(mark) ans++;
printf("%d\n",ans);
}
return 0;
}