输入一个字符串,判断该字符串是否为回文字符串(语言-c++)

1、编写程序,输入一个字符串,判断该字符串是否为回文字符串,
算法简介:  
1.输入字符串利用库函数找到字符串结束位置; 
2.依次将字符串左侧的字符和字符串右侧字符比较,如果字符串相同继续,不同则退出比较。
3.根据之前比较是否有不同元素判断输出最后结果。

#include <iostream>
#include <cstring>
using namespace std;

bool isPalindrome(string str) {
    int left = 0, right = str.length() - 1;
    while (left < right) {
        if (str[left] != str[right]) {
            return false;
        }
        left++;
        right--;
    }
    return true;
}

int main() {
    string str;
    cout << "请输入字符串:";
    cin >> str;
    if (isPalindrome(str)) {
        cout << "是回文字符串" << endl;
    } else {
        cout << "不是回文字符串" << endl;
    }
    return 0;
}

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1400079
  • 你也可以参考下这篇文章:【C语言】输入一个数 1.输出它是几位数 2.逆序输出 3.正序输出
  • 除此之外, 这篇博客: C与C++程序设计学习笔记中的 10、小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?请编写程序计算并输出结果。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include <stdio.h>
    int sf = 0;
    void f(int n, int step)
    {
    	if (n > 39) return;
    	if (n == 39 && step % 2 == 0) sf++;
    	f(n + 1, step + 1);
    	f(n + 2, step + 1);
    }
    int main(void)
    {
    	f(0, 0);
    	printf("共有%d种上法\n", sf);
    	return 0;
    }