[问题]假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配,比如:abcda和adabc,由于出现的字符个数都是相同,只是顺序不同,所以这两个字符串是匹配的。要求高效:
bool IsMatch(char *str1,char *str2) { int counters[R]; while(*str1 != '/0' && *str2 != '/0') { ++counters[*str1++]; --counters[*str2++]; } if (*str1 != '/0' || *str2 != '/0') // 字符串长度不等 { return false; } for(int i=0; i < R;i++) { if(counters[i] != 0 ) { return false; // 至少有一个字母的个数不等 } } return true; }