49.输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL)

简介: 49.输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL)

(1)

#include<iostream>
using namespace std;
 
int main()
{
    int k=0;
    int j;
    char b[20];
 
    cout<<"please input an number: "<<endl;
    cin>>b;
 
    for(j=0;j<20&&b[j]!='\0' ;j++); //字符串有一个结束符,判断它可知是否结束
    {
        k=j;
    }
    for(int m=0;m<k;m++)
    {
        if(b[m]!=b[k-m-1])
        {
            cout<<"这不是回文数!"<<endl;
            return -1;//跳出循环
        } //不能判断一个就确定是回文
    }
 
    //检查完毕,是回文才会到这里
    cout<<"这是回文数!"<<endl;
 
    return 0;
}

(2)

#include<iostream>
#include<string.h>//这个头文件可以使用strlen函数
using namespace std;
 
int main()
{
    int k=0;
    int m,n;
    char b[20];
 
    cout<<"please input an number: "<<endl;
    cin>>b;
 
    for (m=0,n=strlen(b) - 1; (m!=n) && (m+1!=n); m++, n--)
    {
        if (b[m] != b[n])
        {
            cout<<"这不是回文数!"<<endl;
            return -1;//跳出循环
        }//不能判断一个就确定是回文
    }
 
    //检查完毕,是回文才会到这里
    cout<<"这是回文数!"<<endl;
    return 0;
}

(3)运用指针

#include<iostream>
#include<string.h>//这个头文件可以使用strlen函数
using namespace std;
int HuiWen(char*);
 
int main()
{
    int k=0;
    int m,n;
    char b[20];
 
    cout<<"please input an number: "<<endl;
    cin>>b;
 
    if(HuiWen(b))
    {
        cout<<"这是回文数";
    }else
    {
        cout<<"这不是回文数";
    }
 
    return 0;
}
 
int HuiWen(char* s)
{
    if(NULL == s)
    {
        return 0;
    }
    char *head=s;//指向第一个字符
    char *tail=s+strlen(s)-1;//指向最后一个字符
 
 
    while(true)
    {
        if(head >= tail)return 1;
        if(*head == *tail)
        {
            head++;
            tail--;
        }
        else
        {
            return 0;
        }
    }
}
目录
相关文章
|
2月前
|
Python
递归魔法:判断字符串是否为回文
本文介绍了如何使用递归判断一个字符串是否是回文。回文字符串是指正读和反读都相同的字符串。文章详细讲解了递归的基本思想和Python实现,并通过多个示例验证了函数的正确性。递归方法通过将大问题分解成更小的子问题,使得判断回文变得简单高效。
69 5
|
3月前
判断用户输入的整数是奇数还是偶数
【10月更文挑战第14天】判断用户输入的整数是奇数还是偶数。
31 2
|
7月前
字符串\判断回文
字符串\判断回文
30 2
|
8月前
|
算法 测试技术 C#
【字符串】【括号匹配】【广度优先】301. 删除无效的括号
【字符串】【括号匹配】【广度优先】301. 删除无效的括号
【字符串】【括号匹配】【广度优先】301. 删除无效的括号
|
8月前
|
算法 Java
给定一个字符串数组,如何找到其中最长的回文子串? 要求:编写一个Java函数,输入一个字符串数组,输出其中最长的回文子串。要求时间复杂度为O(n^2)。可以考虑使用动态规划或中心扩展的方法来优化算法。
给定一个字符串数组,如何找到其中最长的回文子串? 要求:编写一个Java函数,输入一个字符串数组,输出其中最长的回文子串。要求时间复杂度为O(n^2)。可以考虑使用动态规划或中心扩展的方法来优化算法。
90 1
LeetCode-41 缺失的第一个正整数
LeetCode-41 缺失的第一个正整数
定义一个长度为10的整型数组,循环输入10个整数。 然后将输入一个整数,查找此整数,找到后输出下标,没找到给出提示。
定义一个长度为10的整型数组,循环输入10个整数。 然后将输入一个整数,查找此整数,找到后输出下标,没找到给出提示。
225 0
|
算法 安全 Swift
LeetCode - #9 判断回文数字
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
​判断给定字符序列是否是回文
​判断给定字符序列是否是回文
85 0
|
算法
每日一题——找出字符串中第一个匹配项的下标(实现strStr)(暴力解法)
每日一题——找出字符串中第一个匹配项的下标(实现strStr)(暴力解法)