21xrx.com
2025-03-27 09:04:50 Thursday
文章检索 我的文章 写文章
C++实现回文串判断
2023-06-29 18:39:43 深夜i     10     0
C++ 回文串 判断

回文串是指正着和倒着读都一样的字符串,比如"level"和"racecar"就是回文串。回文串判断是字符串处理中的一个重要问题,本文将介绍C++实现回文串判断的方法。

一、基本思路

回文串判断的基本思路是将字符串从中间分开,如果分开后两部分对称,就是回文串。因此,我们可以利用C++自带的string类型的下标访问来实现这个思路。具体实现步骤如下:

1.用length()函数获取字符串的长度

2.判断字符串长度奇偶性,如果是偶数长度,直接从中心位置分开;如果是奇数长度,则从中心位置向左右两边分开。

3.分开后的两个子串进行对比,如果对称就是回文串。

二、代码实现

下面是C++的回文串判断代码实现:

#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(string str){
  int len = str.length();
  int left, right;
  
  if (len % 2 == 0)
    left = len / 2 - 1;
    right = len / 2;
   else {
    left = len / 2 - 1;
    right = len / 2 + 1;
  }
  
  while (left >= 0 && right < len && str[left] == str[right]) {
    left--;
    right++;
  }
  
  if (left < 0 && right >= len)
    return true;
   else
    return false;
  
}
int main() {
  string s = "level";
  if (isPalindrome(s))
    cout << "是回文串" << endl;
   else
    cout << "不是回文串" << endl;
  
  return 0;
}

三、测试输出

将以上代码复制粘贴到C++编译器进行编译,输入一个字符串进行测试,比如"level",将得到如下输出结果:

是回文串

说明输入的字符串是回文串。

四、总结

回文串判断是C++字符串处理中比较典型的问题,掌握了上述的基本思路和代码实现方法,就能够解决这个问题。对于需要经常处理字符串的程序员来说,熟练掌握C++字符串处理是非常重要的。

  
  

评论区

请求出错了