虽然题解都在说水,但是没有一个好的思路还是很头疼的(我自己)。
思路就是看前一位是不是连号,是的话就跳,不是连着的就加;只要注意i-1不越界就行。
希望对你们有帮助
for (int i = 0; i < strlen(str); i++) {
switch(str[i]){
case 'b':boy++;break;
case 'o':if(i-1>=0&&str[i-1]!='b')boy++;break;
case 'y':if(i-1>=0&&str[i-1]!='o')boy++;break;
case 'g':girl++;break;
case 'i':if(i-1>=0&&str[i-1]!='g')girl++;break;
case 'r':if(i-1>=0&&str[i-1]!='i')girl++;break;
case 'l':if(i-1>=0&&str[i-1]!='r')girl++;break;
default:break;
}
}