• 算法竞赛入门经典程序3-6


    //

    //  excercise.cpp

    //  rumen

    //

    //  Created by Bowie Hsu  on 14/11/19.

    //  Copyright (c) 2014 Bowie Hsu . All rights reserved.

    //

     

    #include "excercise.h"

    #include <iostream>

    #include "stdio.h"

    #include "ctype.h"

    using namespace std;

     

    int main()

    {

     //输入字符串

        char a[20]="ok Madam,i'm adam,i";

        char b[20];

        int p[20];

        int m=0;

        int max=0;

        int str=0,en=0;

        //cin.getline(a,10);

        //判断回文,剔除标点,并将所有的字母转变成大写

        int length=sizeof(a);

        for(int i=0;i<length-1;i++)

        {

         if(isalpha(a[i]))

         {p[m]=i;

             //记录下改变后的字符在原数组中的位置

             b[m++]=toupper(a[i]);

         }

         }

        //判断字符串是否为回文

        for (int i=0; i<length; i++)

            for(int j=i;j<length;j++)

            {

                //判断回 并返回标志

                int ok=1;

                for(int k=i;k<=j;k++)

                if(b[k]!=b[j+i-k])

                 ok=0;

                if(ok && j-i+1>max)

                {max=j-i+1;

                str=p[i];

                en=p[i+max-1];

                }

            }

        cout<<en<<endl;

        for(int i=str;i<en+1;i++)

        {

            printf("%c",a[i]);

        }

        

        

        return 0;

        

    }

     

    //效率存在问题,原书中用的时中间法

  • 相关阅读:
    mysql拼接字符串和过滤字符的方法
    python ichat使用学习记录
    php简单混淆类加密文件如何解密?
    如何读取xml文件,根据xml节点属性查询并输出xml文件
    GoldenDict
    R群体
    samtools中faidx索引格式
    Conservation and the genetics of population重要语录
    图形分类
    电脑网络知识理解
  • 原文地址:https://www.cnblogs.com/bowiehsu/p/4109162.html
Copyright © 2020-2023  润新知