求一算法,找出一个长句的最长字符串的长度
比如
i am a student
长度应该是student的长度,要求效率最高,谢谢
[解决办法]
就遍历长句,每找到一个单词就记录长度如果大于当前最大的长度就替换掉它.
复杂度只是strlen(str).这还不够高效吗。
[解决办法]
设置一个计数值,例如为count,然后从前往后查找句子中的特殊字符,包括空格和逗号,句号
这些。每遇到一个,就比较一下count的值是否为最大,然后清零,继续记录。这样的效率是最
小的,只是线性的增长。
[解决办法]
#include <stdio.h>
main()
{
int i=0,j=0;
char ch;
while(ch=getchar())
{
if(ch!= ' '&&ch!= '\n ')
i++;
if(ch== ' '&&i> j)
{
j=i;
i=0;
}
if(ch== '\n ')
{
if(i> j)
j=i;
break;
}
}
printf( "%d ",j);
ch=getchar();
}
可以试试