C++:文字列を指定し、エコーであるかどうかを検証し、アルファベットと数字文字のみを考慮し、アルファベットの大文字と小文字を無視します.
9282 ワード
#include
#include
using namespace std;
int isPalindrome(char s[]);
int main()
{
char s[100];
gets(s);
if (isPalindrome(s))
cout << "true";
else
cout << "false";
return 0;
}
void tolwr(char *s)
{
int len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]>='a'&&s[i]<='z')
{
s[i]-=32;//
}
}
}
int isPalindrome(char *s)
{
tolwr(s);
int left = 0;
int right = strlen(s) - 1;
int x=1;
while(left<right)
{
while(left<right&&!(s[left] >= '0' && s[left] <= 9 || s[left] >= 'A' && s[left] <= 'Z'))
{
left++;//
}
while(left<right&&!(s[left] >= '0' && s[right] <= 9 || s[right] >= 'A' && s[right] <= 'Z'))
{
right--;//
}
if(s[left]!=s[right])// ,
{
x=0;//
break;
}
left++;//
right--;
}
return x;
}
**
テスト:
**入力サンプル:A man,a plan,a canal;Panama出力:true
入力サンプル:race a car出力:false
by北科sjk