代码之美---递归之美
第一章: 正则表达式匹配器
书中主要实现了一个简单的正则表达式引擎,这里我简化为判断字符串中是否包含子串。
bool mathed(char* text, char* sub)
{
if (*sub == '\0')return true;
if (*text != 0 && *sub == *text)
return mathed(text + 1, sub + 1);
return false;
}
bool hasSubStr(char* text, char* sub)
{
do{
if (mathed(text, sub)) return true;
} while (*text++ != '\0');
return false;
}
好简洁的代码, 我也为这种简洁惊叹。
在以上代码中,我学到了:
- 在编程中一个良好的规则就是:在处理复杂的情况之前首先处理容易的情况。 细分功能,先实现简单的,然后叠加, 如: mathe函数
- 递归的强大功能,其对代码能带来非常大的整洁。