一、问题描述
二、算法描述
已知存放物品的数组排列规则固定,则每次先判断ruleKey类型从而确定要遍历的对象,碰到Value ==ruleValue计数器count++,减少了一层循环。
三、具体代码
int countMatches(char *** items, int itemsSize, int* itemsColSize, char * ruleKey, char * ruleValue){
int i,count;
if(!strcmp(ruleKey,"type")){
count = 0;
for(i=0;i<itemsSize;i++){
if(!strcmp(items[i][0],ruleValue))
count++;
}
}
if(!strcmp(ruleKey,"color")){
count = 0;
for(i=0;i<itemsSize;i++){
if(!strcmp(items[i][1],ruleValue))
count++;
}
}
if(!strcmp(ruleKey,"name")){
count = 0;
for(i=0;i<itemsSize;i++){
if(!strcmp(items[i][2],ruleValue))
count++;
}
}
return count;
}
四、提交结果