判断一个字符串是不是回文

fashionzhou 2006-03-24 03:45:24
大家帮忙
...全文
764 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
X_Forever 2006-03-26
  • 打赏
  • 举报
回复
int isPalindrome(char *str){
/* 返回1是回文,0不是回文*/
int flag=0,len;
char *p,*t;

len=strlen(str);

if(len<=1){
return 1;
}

p=str;
t=str+len-1;
while(p<=t&&*p==*t){
p++;
t--;
}

if(p>=t)
flag=1;
else
flag=0;

return flag;
}

/*写完发觉同2楼(jixingzhong)*/
IhaveGotYou 2006-03-25
  • 打赏
  • 举报
回复
int IsReverseStr(char *aStr)
{ int i,j;
int found=1;
if(aStr==NULL)
return -1;
j=strlen(aStr);
for(i=0;i<j/2;i++)
if(*(aStr+i)!=*(aStr+j-i-1)){
found=0;
break;
}
return found;
}
digifish 2006-03-24
  • 打赏
  • 举报
回复
输入:"a", "aa", "aba", "ababa"输出yes.

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv) {

char pstr[100];
int i, j, len;

gets(pstr);
len = strlen(pstr);

if((len == 1) || ((len==2) && pstr[0]==pstr[1])) {
printf("Yes\n") ;
return 0;
}

for( i=0, j=strlen(pstr)-1; i<j; i++, j--) {
if( pstr[i]!=pstr[j]) {
printf("No\n");
return 0;
}
}

printf("Yes\n");

return 0;
}
Athna 2006-03-24
  • 打赏
  • 举报
回复

拿队列和堆栈一块进行比较
void Compare(char str[])
{
SeqCQueue Queue;
SeqStack Stack;
char x,y;
int i,length;


length=strlen(str);
QueueInitiate(&Queue);
StackInitiate(&Stack);

for(i=0;i<length;i++)
{
QueueAppend(&Queue,str[i]);
StackPush(&Stack,str[i]);
}

while(QueueNotEmpty(Queue)==1&&StackNotEmpty(Stack)==1)
{
if(QueueDelete(&Queue,&x)==1&&StackPop(&Stack,&y)==1&&x!=y)
{
//NO
return;
}
}

if(QueueNotEmpty(Queue)||StackNotEmpty(Stack))
//No
else
//Yes
}

刚重复习了一下这方面的知识
所以随便用一下~
兰心兰心 2006-03-24
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<stdio.h>
#include<string.h>

void main()
{
char p[20];
int length,temp,i;
gets(p);
length=strlen(p);
i=0;

if(length%2==0)
{
temp=length/2;
}
else
{
temp=length/2+1;
}



while(temp>=0)
{
if(p[i]!=p[length-1-i])
{
printf("不是回文");
break;
}
i++;
temp--;
}

printf("shi hui wen");
}

逸学堂 2006-03-24
  • 打赏
  • 举报
回复
char str[] ="asdfasdf";
int j = strlen(str)-1;
bool b = false;

for(int i = 0; i<j; ++i,--j)
{
if(str[i] != str[j])
{
b = true;
break;
}
}

if(b)
{
// YES
}
else
{
// NO
}
gjianpro 2006-03-24
  • 打赏
  • 举报
回复
ou也看到了这个题..
lvfeng350 2006-03-24
  • 打赏
  • 举报
回复
程序有点问题,当输入ABC时,显示YES!!
应该稍做改进:
#include<stdio.h>
#include<string.h>

void main()
{
char str[40], *p, *q;

gets(str);
p = str;
q = str + strlen(str) - 1;

while(p <= q)
{
if(*p == *q)
{
p++;
q--;
}
else break;
}
if(p >= q)
{
printf("YES!!");
}
else
{
printf("NO!!");
}

getch();

}
jixingzhong 2006-03-24
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<string.h>

main()
{
char str[40], *p, *q;

gets(str);
p = str;
q = str + strlen(str)-1;

while(p <= q)
if(*p++ == *q--);
else break;
if(p >= q)
printf("YES!!");
else
printf("NO!!");

getch();

}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧