posts - 0,  comments - 0,  trackbacks - 0
给你一个没有间隔的字符串“thisisasentence”,如何将他分割成如下的句子:“this is a sentence”。
提供一个函数用来检验一个字符串是不是单词:bool dic(char* w);
完成下列的函数。要求效率尽可能快。
bool Detect(char* str)
{

}
尽量写出完整思路,最好有伪代码。

下面只是一个不完美的解决方案:
 1 bool Detect(char* str)
 2 {
 3     int len = strlen(str);
 4     //字符匹配完毕,返回true
 5     if(0 == len)
 6     {
 7         return true;
 8     }
 9     //递归匹配剩余字符
10     //回溯体现在i++上面
11     for(int i=0;i<len;i++)
12     {
13         //伪码,复制str[0]--str[i]建立一个字符串
14         char word[] = make_str(str,0,i);
15 
16         if(true == dic(word))
17         {
18             if(true == Detect(str+i+1))
19             {//如果剩下的字符构成单词串
20                 return true;
21             }
22         }
23     }
24     //当 i== len时,说明剩下的全部字符不构成单词,返回false
25     return false;
26 }
posted on 2011-06-01 21:07 ewook 阅读(311) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理