判断回文串(C)

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

int isParlindromeString(char a[]) {
    int i, len, mid, next, top;
    
    len = (int)strlen(a);
    // 求字符串中点
    // (eg:奇数个[1,2,3],mid=0;偶数个[1,2,3,4], mid=1)
    mid = len / 2 - 1;
    
    char temp[mid+1];
    top = 0;
    
    // 将mid前的字符依次入栈
    for (i = 0; i <= mid; i++) {
        temp[top] = a[i];
        top++;
    }

    // 判断字符串的长度是奇数还是偶数
    // 并找出需要进行字符匹配的起始下标
    if (len % 2 == 0) {
        next = mid + 1;
    } else {
        next = mid + 2;
    }
    
    for (i = next; i <= len - 1; i++) {
        top--;
        if(a[i] != temp[top]) {
            break;
        }
    }
    
    if (top == 0) {
        return 1;
    } else {
        return 0;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一次面试引起的思考 在一次面试中曾被问到这样一个问题,如何判断字符串是否是回文,要求写一个函数,语言不限。我当时一...
    archersx阅读 5,766评论 4 3
  • 如题,代码如下: /** 递归方式判断一个字符串是否为回文字符串*/public class PartitionT...
    cactusjunjie阅读 6,278评论 0 0
  • 实习刚结束,由于实习期间一直用的React框架,原生js都有些生疏了,所以用原生js写了个简单的轮播图练练手。 方...
    Obvious_96阅读 4,638评论 0 8
  • ​书出版以后,总会不停的发现有些写得不到位的地方,还可以优化,所以时不时发一些出来,作为书的补充,这篇有三个升级。...
    iamsujie阅读 3,483评论 1 14
  • 日子不敢毫无意义地过掉, 怕对不起“生”这一个字。 不敢过得太欢乐, 怕对不起“死”这一个字。 于悲哀中平抑伤痛,...
    读云轩札记阅读 1,904评论 1 1