题目一 彩砖的问题
解析:在答这道题的时候,我分析出,首先是和字母的种类数有关系的,当这个种类数为2的时候,它是存在的,而且结果是2,因为BBAA与AABB,当这个种类数为3或者大于3的时候,这个时候是不存在,因为,只要第三种和前两种相邻,这个结果就是大于1的,对于种类数为0和1的情况,我都认为是0(理解错误),在这一块,我犯了错误,题目中是“最多存在一对不同颜色的相邻砖块”,也就是说包含着一对都不存在的情况,我把这点忽略,这种在脑海浮现过,只是我认为它不符合而已,所以,正确的结论是,当种类数大于2的时候,结果就是0,当种类数小于2的时候,种类数就是最后的结果
总结:在这个过程中我遇到的第一个难点就是,如何得到这个种类数,我想到的思路就是遍历字符串,将统计的结果放到一个空数组中,这个时候我想到了自己之前的做法,以大写字母的ASCII码值作为下标,但是一想这次只有26个字母,空间太浪费了,所以我打算这个数组只存储这26的字母,所以我就想到’A’对应的下标就是0,然后就想到了用字母-A
作为统计数组的下标
具体的代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void) {
char str[50];
int a[26] = {
0};
int i = 0;
int type = 0;
gets(str);
for(i = 0; i < strlen(str); i++) {
a[str[i] -