📌  相关文章
📜  C ++程序检查给定字符串是否为回文(1)

📅  最后修改于: 2023-12-03 15:29:43.161000             🧑  作者: Mango

C++程序检查给定字符串是否为回文

什么是回文?

回文是指正反顺序都相同的字符串。例如,"racecar"和"level"都是回文。

如何检查一个字符串是否为回文?

可以使用双指针算法来检查一个字符串是否为回文。双指针算法,顾名思义,就是使用两个指针分别从字符串的起始位置和末尾位置进行遍历,比较它们所指向的字符是否相同,一旦出现不同的情况,则说明该字符串不是回文。

在C++中,可以使用以下代码实现双指针算法:

#include <iostream>
using namespace std;

bool isPalindrome(string s) {
    int i = 0, j = s.size() - 1;
    while (i < j) {
        if (s[i] != s[j]) {
            return false;
        }
        i++;
        j--;
    }
    return true;
}

int main() {
    string s;
    cout << "Please enter a string: ";
    cin >> s;
    if (isPalindrome(s)) {
        cout << s << " is a palindrome." << endl;
    } else {
        cout << s << " is not a palindrome." << endl;
    }
    return 0;
}
说明

以上代码中,isPalindrome函数使用了两个指针变量i和j,分别指向字符串的起始位置和末尾位置。在while循环中,每次判断i所指向的字符是否等于j所指向的字符,如果不相等,则说明该字符串不是回文,返回false;如果相等,则将i向后移动一位,j向前移动一位,继续进行比较。当i>=j时,说明该字符串是回文,返回true。

在main函数中,先输入待检查的字符串,然后调用isPalindrome函数进行判断,最后输出判断结果。

以上为C++程序检查给定字符串是否为回文的介绍。