代码之美---递归之美

第一章: 正则表达式匹配器

书中主要实现了一个简单的正则表达式引擎,这里我简化为判断字符串中是否包含子串。


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;
}

好简洁的代码, 我也为这种简洁惊叹。
在以上代码中,我学到了:

  1. 在编程中一个良好的规则就是:在处理复杂的情况之前首先处理容易的情况。 细分功能,先实现简单的,然后叠加, 如: mathe函数
  2. 递归的强大功能,其对代码能带来非常大的整洁。
posted @ 2014-11-07 11:54  sld666666  阅读(311)  评论(0编辑  收藏  举报