zoukankan      html  css  js  c++  java
  • 算法之回文数判断

      所谓回文字符 串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回 文,但“ahah”不是回文。

      通过栈这个数据结构我们将很容易判断一个字符串是否为回文。

     1 // 4. 判断回文字符串
     2         char a[9], s[9];
     3         int i, len, mid, next, top;
     4         
     5         gets(a); // 读入一行字符串
     6 //        a = "qwerewq";
     7         len = strlen(a);
     8         mid = len / 2 - 1; // 求字符串中点
     9         
    10         top = 0; // 栈的初始化
    11         for(i = 0; i <= mid; i++){
    12             s[++top] = a[i];
    13             
    14             // 判断字符串的长度是基数还是偶数, 并找出需要进行字符匹配的起始下标
    15             if(len % 2 == 0){
    16                 next = mid + 1;
    17             }else{
    18                 next = mid + 2;
    19             }
    20             
    21             // 开始匹配
    22             for(i = next; i <= len - 1; i++){
    23                 if (a[i] != s[top]) {
    24                     break;
    25                 }
    26                 top--;
    27             }
    28             
    29             // 如果top值为0, 则说明栈内所有字符都被一一匹配了
    30             if(top == 0){
    31                 printf("YES");
    32             }else{
    33                 printf("NO");
    34             }
    35             getchar();getchar();
    36         }
  • 相关阅读:
    .Net Web开发技术栈
    C#foreach原理
    C#位运算符
    python写12306抢票
    java语法学习
    建立个人知识体系
    struts2静态方法和动态方法调用
    springmvc跳转的几种方式
    JDBC驱动程序的四种方式
    eclipse用axis2发布webserver
  • 原文地址:https://www.cnblogs.com/guangleijia/p/5163620.html
Copyright © 2011-2022 走看看