int foo(char *str)
{
char *p = str;
while (p && *p!='\0' &&
((*p >= 'a' && *p <= 'z')
|| (*p >= 'A' && *p <= 'Z') || *p == '@')) {
p++;
}
return p-str;
}
上記の複雑なwhile
ステートメントの時間と空間の複雑さはどうなりますか。while 囲みのステートメントの数に依存しますか
while (p && *p!='\0' && ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z') || *p == '@'))
またはwhile
本体のみ
while(){
//body statements
p++;
}
上記のように。&&
また、またはの短絡にも依存し||
ます。