私は面接の準備をしていて、単純な C プログラミングの質問から始めました。私が遭遇した 1 つの質問は、特定の文字列が回文かどうかを確認することでした。ポインターを使用して、ユーザーが指定した文字列が回文であるかどうかを確認するコードを作成しました。これがランタイムの点で効果的な方法であるかどうか、またはそれに対してできる拡張があるかどうかを知りたいです。また、ポインターを使用するときに、文字以外の他の文字 (アポストロフィー カンマなど) を削除する方法を誰かが提案してくれるとうれしいです。以下に関数を追加しました。文字列へのポインタをパラメータとして受け取り、整数を返します。
int palindrome(char* string)
{
char *ptr1=string;
char *ptr2=string+strlen(string)-1;
while(ptr2>ptr1){
if(tolower(*ptr1)!=tolower(*ptr2)){
return(0);
}
ptr1++;ptr2--;
}
return(1);
}